Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP] php w skrypcie js
Terrorizer
post
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Chciałbym aby funkcja javascript odpalała mi skrypt php, podczas gdy warunek if jest prawdziwy.
Sprawdzałem różne metody z internetu, natomiast nie bardzo chcą one działać, albo zwyczajnie ich nie rozumiem
Mógłbym poprosić o podpowiedź?
  1. <script type="text/javascript">
  2. function clicked(photoid){
  3.  
  4. var divcolor = document.getElementById(photoid.toString()).style.backgroundColor;
  5. var red = <?php mysql_query('UPDATE photos SET color = "red" where id = "'.$photoid.'" ');?>;
  6. var white = <?php mysql_query('UPDATE photos SET color = "white" where id = "'.$photoid.'" ');?>;
  7.  
  8. if (divcolor == "white"){
  9. document.getElementById(photoid.toString()).style.backgroundColor = 'red';
  10. document.write (red);
  11. }
  12. else document.getElementById(photoid.toString()).style.backgroundColor = 'white';
  13. document.write (white);
  14. }
  15. </script>


Ten post edytował Terrorizer 16.09.2014, 15:15:13
Go to the top of the page
+Quote Post
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Poczytaj o AJAX np. tutaj:
http://kursjs.pl/kurs/jquery/jquery_ajax.html
Go to the top of the page
+Quote Post
Terrorizer
post
Post #3





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


ahh ten ajax (IMG:style_emoticons/default/biggrin.gif)
No czytam o nim, ale coś cały ten javascript do mnie nie przemawia.
Usiłuję robić coś na logikę, ale wychodzi jak widać (IMG:style_emoticons/default/tongue.gif)
Czy ja nie mogę zwyczajnie sprawić aby js wyświetlił ten skrypt php jako zwykły tekst, co zwyczajnie go uruchomi?
Go to the top of the page
+Quote Post
markuz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


JavaScript = coś dynamicznego
PHP = coś "statycznego"

W twoim przypadku kliknąć w zdjęcie możesz kilka razy i obsłuży to JavaScript bo jest dynamiczny.
Natomiast PHP (już pomijając błędy w składni w twoim kodzie) wykona się tylko 1 raz podczas wykonania zapytania na serwer.

Jeżeli chcesz wykonywać PHP kilka razy "dynamicznie" wtedy musisz użyć AJAX który dynamicznie od strony JavaScript wykonuje "statyczny" kod PHP poprzez zapytanie.

Przeczytaj zdanie po zdaniu kurs który Ci wysłałem wyżej. Najlepiej od początku. Nie ma sensu zagłębiać się w AJAX jak nie rozumie się podstaw JavaScript (IMG:style_emoticons/default/smile.gif)

Ten post edytował markuz 16.09.2014, 15:27:35
Go to the top of the page
+Quote Post
Terrorizer
post
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


A czy w takiej formie jest ok??
Wciąż to nie działa, nie wiem dlaczego :/

  1. function clicked(photoid){
  2.  
  3. var divcolor = document.getElementById(photoid.toString()).style.backgroundColor;
  4.  
  5. if (divcolor == "white"){
  6. document.getElementById(photoid.toString()).style.backgroundColor = 'red';
  7. var xmlhttp=new window.XMLHttpRequest();
  8. xmlhttp.open("GET", "redcolor.php?photoid=" + photoid, true);
  9. xmlhttp.send();
  10. }
  11. else document.getElementById(photoid.toString()).style.backgroundColor = 'white';
  12. var xmlhttp=new window.XMLHttpRequest();
  13. xmlhttp.open("GET", "whitecolor.php?photoid=" + photoid, true);
  14. xmlhttp.send();
  15. }

plik redcolor.php:
  1. <?php
  2. ini_set('display_errors','1');
  3. mysql_query('UPDATE photos SET color = "red" where id = "'.$photoid.'" ');
  4. ?>


Ten post edytował Terrorizer 16.09.2014, 16:15:17
Go to the top of the page
+Quote Post
markuz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Przepisz to na jQuery - jest znacznie łatwiej.
Go to the top of the page
+Quote Post
Terrorizer
post
Post #7





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Znacznie łatwiej jeśli zna się jquery (IMG:style_emoticons/default/biggrin.gif)
No nic, to chyba kolejna nocka zarwana będzie (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Boże, przecież ajax w jquery to 5 linijek. Masz wszystko w tamtym linku
Go to the top of the page
+Quote Post
Terrorizer
post
Post #9





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Nie macie pojęcia ile zajmuje napisanie 5 linijek działającego kodu osobie która nie ma ścisłego umysłu i uczy się wszystkiego bazując na swojej durnej logice (IMG:style_emoticons/default/biggrin.gif)
Tak czy inaczej dzięki za wskazówki, wiem już nad czym pracować i będę z tym walczył.

P.S. Wygląda na to ,że zmienna istnieje photoid istnieje wewnątrz funkcji, jednak nie chce się wysłać do pliku php

Ten post edytował Terrorizer 16.09.2014, 17:12:49
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


http://turson.pl/blog/skrypt-ocen-oparty-na-ajaxie-jquery/
Może to ci pomoże wyjaśnić jak przesłać dane z js do php i coś zrobić z tym.
Go to the top of the page
+Quote Post
Terrorizer
post
Post #11





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Wygląda to tak, jakby ajax miał problemy. Raz wpis w bazie się updatuje, a raz nie. Dziwna sprawa

Ten post edytował Terrorizer 16.09.2014, 17:25:19
Go to the top of the page
+Quote Post
lukasz_os
post
Post #12





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Odpal firebuga, lub inne narzędzie dla developerów i zobacz co ci zwraca konsola... Wtedy bedziesz wiedział co jest nie tak
Go to the top of the page
+Quote Post
Terrorizer
post
Post #13





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Całość błędu wynikała z braku nawiasu przy else. Ot co, cały problem nad którym siedziałem ponad 7 godzin (IMG:style_emoticons/default/haha.gif)
Dzięki za pomoc wszystkim (IMG:style_emoticons/default/tongue.gif)

Ten post edytował Terrorizer 16.09.2014, 19:06:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:33