Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP] problem z przekazaniem zmiennej
Forum PHP.pl > Forum > Przedszkole
maxis88
Witam. Mam mały problem z przekazaniem zmiennej GET w ajaxie... robiłem podobne skrypty które działały więc nie wiem czemu nie chce ten ...

w skrócie wygląda to tak :
po naciśnięciu ma użyć funkcji ajaxa...
  1. echo"<potion id='pot' onClick='uzyj_potion(\"hp5\")'><img src='grafika/hp.png'> x $dane[ilosc]</potion><br>";


ajax:
function uzyj_potion(rodzaj){

var dest=document.getElementById('pot');
var url="funkcje_pomocnicze.php?potion="+rodzaj;
var zdarzenie= new ajax;

zdarzenie.open("GET", url);
zdarzenie.onreadystatechange=function(){
if(zdarzenie.status==200 && zdarzenie.readyState==4){
dest.innerHTML=zdarzenie.responseText;
}
}
zdarzenie.send(null);
}


funkcja ajax jest napisana wcześniej i z pewnością działa ( rozpoznaje rodzaj przeglądarki )

następnie plik ( część która daje jakiś wynik ) z którym łączy się skrypt ajaxa:

  1. if($_GET['potion']!=""){
  2.  
  3. uzyj_potion($_GET['potion']);
  4. open_db();
  5. $nick=$_SESSION['nick'];
  6. $zaznacz=mysql_query("SELECT ilosc FROM items WHERE nazwa='HP+ 5' AND wlasciciel='$nick'");
  7. $dane=mysql_fetch_assoc($zaznacz);
  8. echo"<potion onClick=\"uzyj_potion('hp5')\" id='pot'>$dane[ilosc] x <img src=\"grafika/hp.png\" /></potion><br />";
  9.  
  10. }


wszystko by było fajnie gdyby w pliku funkcje_pomocnicze.php ( ten ostatni ) wykrywało mi $_GET['potion']

sprawdzając funkcję z ajaxem adres jest konstruowany prawidlowo i zmienna na koncu adresu ma postac "potion=hp5" wiec w teorii powinno byc ok ...
męczę się już z szukaniem w czym jest błąd kolejny dzień i nadal nie wiem co robię nie tak bo jak wspomniałem wczesniej właściwie kopiowałem inne funkcje ktore dzialaly a tu nie chce dzialac sad.gif
BaN
Pierwszy raz widzę znacznik <potion>. Piszesz w HTML? Włącz firebuga lub inne podobne narzędzie i zobacz jakie dane są przekazywane
bostaf
W JS masz
[JAVASCRIPT] pobierz, plaintext
  1. dest.innerHTML=zdarzenie.responseText;
[JAVASCRIPT] pobierz, plaintext

Czyli wewnątrz klikniętego znacznika będzie wstawiony, odpowiedź od wywoływanego skryptu PHP (funkcje_pomocnicze.php?potion="+rodzaj), a ta odpowiedź to:
  1. echo"<potion onClick=\"uzyj_potion('hp5')\" id='pot'>$dane[ilosc] x <img src=\"grafika/hp.png\" /></potion><br />";

Nie dubluje Ci się przypadkiem obrazek hp.png? Czy w jaki sposób błąd się objawia?
Gość
potion to sztuczny znacznik ale nie ma to w tym przypadku znaczenia bo nawet jak dam <div> to problem wyglada tak samo ... a mianowicie jak klikne to obrazek znika i sie nie pojawia... jak dodam alerty w poszczegolnych miejscach kodu to jedynie alert w "funkcje_pomocnicze.php" sie nie pojawia jak znajduje sie w funkcji if... co znaczy ze nie ma zmiennej get...

obrazek nie powinien sie dublowac bo wstawiajac w
  1. dest.innerHTML
wartosc odpowiedzi ajaxa, stara zawartosc znacznika "potion" powinna byc zastąpiona nową prawda ?
Gość
firebug pokazuje że zmienna get jest przekazywana i ma postać potion=hp5 czyli tak jak byc powinno... dlaczego wiec w skrypcie jej nie wykrywa ?
bostaf
Cytat(Gość @ 7.10.2012, 19:38:49 ) *
stara zawartosc znacznika "potion" powinna byc zastąpiona nową prawda ?

Tak. A że nowa zawartość, którą wyświetla funkcje_pomocnicze.php to
  1. <potion onClick=\"uzyj_potion('hp5')\" id='pot'>$dane[ilosc] x <img src=\"grafika/hp.png\" /></potion><br />
to efektem końcowym będzie:
  1. <potion id='pot' onClick='uzyj_potion(\"hp5\")'><potion onClick=\"uzyj_potion('hp5')\" id='pot'>$dane[ilosc] x <img src=\"grafika/hp.png\" /></potion><br /></potion><br>


Cytat(Gość @ 7.10.2012, 19:55:31 ) *
firebug pokazuje że zmienna get jest przekazywana i ma postać potion=hp5 czyli tak jak byc powinno... dlaczego wiec w skrypcie jej nie wykrywa ?

Co pokazuje firebug w Sieć > Wszystko > Odpowiedź?
Gość
Parametry: potion hp5
Odpowiedz:
  1.  
  2. <body><script type="text/javascript" src="http://a.cba.pl/r1.js"></script>
  3.  
  4. <script type="text/javascript">
  5.  
  6. alert("jestem");
  7.  
  8. </script><!--]>--><div style="text-align:center;font-size:11px" class="cbalink"><a href="http://www.cba.pl/" title="darmowy hosting">Darmowy Hosting</a> CBA.PL<br/><br/></div>
  9. <script type="text/javascript" src="http://a.cba.pl/r2.js"></script>
  10. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
  11. <script type="text/javascript">
  12. _uacct = "UA-2289508-3";
  13. urchinTracker();
  14. </script>
  15. <script type="text/javascript">
  16. var pp_gemius_identifier ='p9.lpfe6LVht.FvD5q6cb8Pc7Mq_YOxZNwdcvPdYR1n.u7';
  17. </script>
  18. <script type="text/javascript" src="http://arbo.hit.gemius.pl/xgemius.js"></script>
  19. <script type='text/javascript' src='http://go.arbopl.bbelements.com/bb/bb_one2n.js'></script>
  20. <script type='text/javascript'>/* <![CDATA[ */
  21. if (ok) bmone2n.addPosition('1585.4.1.30','');
  22. if (ok) bmone2n.getAd('go.arbopl.bbelements.com','',''+(typeof(bburlparam)=='string'?'&'+bburlparam:''));
  23. /* ]]> */</script><div id='bmone2t-1585.4.1.30' style='display:none'><script type='text/javascript'>/* <![CDATA[ */ if (ok) bmone2n.makeAd('1585.4.1.30'); /* ]]> */</script><!--]>--><noscript></noscript></div>
  24. <script type='text/javascript'>/* <![CDATA[ */ if (ok) bmone2n.moveAd(); /* ]]> */</script>

wiekszosc z tego to syf jaki narzuca mi darmowy serwer...

HTML: napis : Darmowy hosting CBA.pl
Gość
skoro zmienna w tablicy get jest przekazywana to dlaczego jak chce ją wyswietlic to pokazuje mi pustke ? nic z tego nie rozumiem ;/
bostaf
Nie o to mi chodziło, po uruchomieniu ajaxu, w firebugu w zakładce Sieć > Wszystko, pojawi sie nowy wiersz, który u Ciebie powinien wyglądać tak:
+GET funkcje_pomocnicze.php?potion=hp5
Jak klikniesz ten napis to rozwinie się okienko z kilkoma zakładkami, m.in. Odpowiedź. To pokazuje output wygenerowany z wywoływanego AJAXem skryptu. Sprawdź jeszcze raz i wklej tu.
Gość
zrobiłem jak napisałeś i otrzymałem ten sam wynik :
  1. <body><script type="text/javascript" src="http://a.cba.pl/r1.js"></script>
  2. <!--]>--><div style="text-align:center;font-size:11px" class="cbalink"><a href="http://www.cba.pl/" title="darmowy hosting">Darmowy Hosting</a> CBA.PL<br/><br/></div>
  3. <script type="text/javascript" src="http://a.cba.pl/r2.js"></script>
  4. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
  5. <script type="text/javascript">
  6. _uacct = "UA-2289508-3";
  7. urchinTracker();
  8. </script>
  9. <script type="text/javascript">
  10. var pp_gemius_identifier ='p9.lpfe6LVht.FvD5q6cb8Pc7Mq_YOxZNwdcvPdYR1n.u7';
  11. </script>
  12. <script type="text/javascript" src="http://arbo.hit.gemius.pl/xgemius.js"></script>
  13. <script type='text/javascript' src='http://go.arbopl.bbelements.com/bb/bb_one2n.js'></script>
  14. <script type='text/javascript'>/* <![CDATA[ */
  15. if (ok) bmone2n.addPosition('1585.4.1.30','');
  16. if (ok) bmone2n.getAd('go.arbopl.bbelements.com','',''+(typeof(bburlparam)=='string'?'&'+bburlparam:''));
  17. /* ]]> */</script><div id='bmone2t-1585.4.1.30' style='display:none'><script type='text/javascript'>/* <![CDATA[ */ if (ok) bmone2n.makeAd('1585.4.1.30'); /* ]]> */</script><!--]>--><noscript></noscript></div>
  18. <script type='text/javascript'>/* <![CDATA[ */ if (ok) bmone2n.moveAd(); /* ]]> */</script>
bostaf
Doczytałem, że to wina hostingu - do skryptów "doklejane" są reklamy, stąd ten szalony output.
W tym poście: http://c0.pl/forum/viewtopic.php?f=15&p=125764 ktoś opisał podobny problem. Admin zaproponował mu wymuszenie zawartości przez ustawienie "content-type". Czyli na początku skryptu funkcje_pomocnicze.php dodaj
  1. header("Content-Type: text/plain");
Gość
niestety nadal nie pomaga ... no nic ... zostawie to na pozniej ... poducze sie lepiej ajaxa i js i moze pozniej sam dojde do tego co jest powodem ... w kazdym razie dzieki za chec pomocy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.