ugrás a tartalomhoz

ajax php mysql

csman007 · 2010. Feb. 20. (Szo), 22.35
Sziasztok!

Egy olyan kérdésem lenne, hogy adva van egy ajaxos kérés amelyet drop dwon boxból select után végrehajt. azt hogy lehetne megoldani, hogy átirja az urlt a kérés alapján.
ez az ajax kód:
  1. var xmlhttp;  
  2.   
  3. function showCucc(str)  
  4. {  
  5.   
  6. xmlhttp=GetXmlHttpObject();  
  7. if (xmlhttp==null)  
  8.   {  
  9.   alert ("A böngésző nem támogatja a HTTP Request-et");  
  10.   return;  
  11.   }  
  12. var url="getpict.php";  
  13. url=url+"?kat="+str;  
  14. url=url+"&sid="+Math.random();  
  15. xmlhttp.onreadystatechange=stateChanged;  
  16. xmlhttp.open("GET",url,true);  
  17. xmlhttp.send(null);  
  18. }  
  19.   
  20. function stateChanged()  
  21. {  
  22. if (xmlhttp.readyState==4)  
  23. {  
  24. document.getElementById("mutat").innerHTML=xmlhttp.responseText;  
  25. }  
  26. }  
  27.   
  28. function GetXmlHttpObject()  
  29. {  
  30. if (window.XMLHttpRequest)  
  31.   {  
  32.   // IE7+, Firefox, Chrome, Opera, Safari  
  33.   return new XMLHttpRequest();  
  34.   }  
  35. if (window.ActiveXObject)  
  36.   {  
  37.   // IE6, IE5  
  38.   return new ActiveXObject("Microsoft.XMLHTTP");  
  39.   }  
  40. return null;  
  41. }  
a lényegi kérdés hogy ezt össze lehetne hozni valahogy a
  1. document.location  
-el?
szeretném átadni a select boxokból a paramétereket de nem tudom hoyg hogyan és szétolvastam már a fejem a neten.
Előre i köszönettel
 
1

köszi

csman007 · 2010. Feb. 21. (V), 00.11
köszönöm de közben megoldottam a megoldás:
  1. gyart = document.getElementById("g").value;  
  2. kat = document.getElementById("k").value;  
  3. termek = document.getElementById("t").value;  
  4. anyag = document.getElementById("a").value;  
  5. szin = document.getElementById("sz").value;  
  6. style = document.getElementById("s").value;  
  7. minta = document.getElementById("m").value;  
  8.   
  9. var url="files/getpict.php";  
  10. url=url+"?kat=tapeta&gyarto="+gyart;  
  11. url=url+"&katalog="+kat;  
  12. url=url+"&termek="+termek;  
  13. url=url+"&anyag="+anyag;  
  14. url=url+"&szin="+szin;  
  15. url=url+"&style="+style;  
  16. url=url+"&minta="+minta;  
ennyi volt :)
2

Escape

Poetro · 2010. Feb. 21. (V), 11.18
Csak ne felejtsd el escapelni az URLben átadott paramétereket, akár csak escape, vagy encodeURIComponent függvénnyel, különben esetleg érdekes meglepetések érhetnek, ha mondjuk & és/vagy = jel szerepel valamelyik mezőben.
3

köszi

csman007 · 2010. Feb. 21. (V), 13.23
Ezekben nem szerepelhet egyik sem, mert mivel dorp down boxokból kapja az értéket, de köszönöm megcsinálom :).
4

A böngésző nem támogatja a HTTP Request-et

vbence · 2010. Feb. 21. (V), 13.26
Elég idegesítő lehet, ha a dropdown box minden változtatásakor az ember arcába dobnak egy modális dialógust.
5

ouch

csman007 · 2010. Feb. 26. (P), 01.14
előjött a kedvenc részem, egyik IE alatt sem működik, de hibát sem ír, valakinek valami 5let?
8

0 infó, 0 válasz

Poetro · 2010. Feb. 26. (P), 02.16
Ameddig nem adsz semmi információt, milyen választ vársz? Mondjuk jó lenne látni most hol tartasz, és mi nem működik.
6

ouch

csman007 · 2010. Feb. 26. (P), 01.15
előjött a kedvenc részem, egyik IE alatt sem működik, de hibát sem ír, valakinek valami 5let?
7

ouch

csman007 · 2010. Feb. 26. (P), 01.17
előjött a kedvenc részem, egyik IE alatt sem működik, de hibát sem ír, valakinek valami 5let?
9

ouch

csman007 · 2010. Feb. 26. (P), 12.38
előjött a kedvenc részem, egyik IE alatt sem működik, de hibát sem ír, valakinek valami 5let?
10

bocsánat

csman007 · 2010. Feb. 26. (P), 12.50
Először is bocsánat a spamért megbolondult a fierfoxom.
a Jelenlegi felállás pedig a következő:
  1. var xmlhttp;  
  2.   
  3. function showCucc()  
  4. {  
  5.   
  6. xmlhttp=GetXmlHttpObject();  
  7. if (xmlhttp==null)  
  8.   {  
  9.   alert ("Browser does not support HTTP Request");  
  10.   return;  
  11.   }  
  12.   
  13. gyart = document.getElementById("g").value;  
  14. kat = document.getElementById("k").value;  
  15. termek = document.getElementById("t").value;  
  16. anyag = document.getElementById("a").value;  
  17. szin = document.getElementById("sz").value;  
  18. style = document.getElementById("s").value;  
  19. minta = document.getElementById("m").value;  
  20.   
  21. var url="files/getpict.php";  
  22. url=url+"?kat=tapeta&gyarto="+gyart;  
  23. url=url+"&katalog="+kat;  
  24. url=url+"&termek="+termek;  
  25. url=url+"&anyag="+anyag;  
  26. url=url+"&szin="+szin;  
  27. url=url+"&style="+style;  
  28. url=url+"&minta="+minta;  
  29. xmlhttp.onreadystatechange=stateChanged;  
  30. xmlhttp.open("GET",url,true);  
  31. xmlhttp.send(null);  
  32. }  
  33.   
  34. function stateChanged()  
  35. {  
  36. if (xmlhttp.readyState==4)  
  37. {  
  38. document.getElementById("mutat").innerHTML=xmlhttp.responseText;  
  39. }  
  40. }  
  41.   
  42. function GetXmlHttpObject()  
  43. {  
  44. if (window.XMLHttpRequest)  
  45.   {  
  46.   //IE7+, Firefox, Chrome, Opera, Safari  
  47.   return new XMLHttpRequest();  
  48.   }  
  49. if (window.ActiveXObject)  
  50.   {  
  51.   //IE6, IE5  
  52.   return new ActiveXObject("Microsoft.XMLHTTP");  
  53.   }  
  54. return null;  
  55. }  
és az ie(8,7,6) nem csinál semmit sem, szó szerint, még hibát sem ír ki.
11

kevés ActiveX

vbence · 2010. Feb. 26. (P), 13.01
Robusztus webappok, vagy 5-6 féle activeX-et ki szoktak próbálni... Wikipédián pl:
http://en.wikipedia.org/wiki/XMLHttpRequest#Support_in_Internet_Explorer_versions_5.2C_5.5_and_6

... de ezt igen kevés utánjárással megtalálod.
12

rendben

csman007 · 2010. Feb. 26. (P), 13.30
Köszönöm ez még rendben is lenne de IE8 alatt sem működik egyáltalán.
13

xmlhttp.send()

vbence · 2010. Feb. 26. (P), 14.17
Az msdn példákban legalábbis nincs null.
14

kiderült

csman007 · 2010. Feb. 26. (P), 15.11
kiderült mi a gond, legalábbis szerintem.
az ajaxos kérés elmegy, de mint kiderült az ie nem szereti az ékezetes betűket.
kérnék egy kis segítséget hogy hogyan tudnám kódolni.
Az oldal alapból UTF-8 ban van, és az ékezetes karakterek nem jelennek meg normálisan.Arra már rájöttem hogy ebben a részben van a hiba:
  1. var url="files/getpict.php";  
  2. url=url+"?kat=tapeta&gyarto="+gyart;  
  3. url=url+"&katalog="+kat;  
  4. url=url+"&termek="+termek;  
  5. url=url+"&anyag="+anyag;  
  6. url=url+"&szin="+szin;  
  7. url=url+"&style="+style;  
  8. url=url+"&minta="+minta;  
  9. xmlhttp.onreadystatechange=stateChanged;  
  10. xmlhttp.open("GET",url,true);  
  11. xmlhttp.send(null);  
például az anyag változót hogyan encodolom?
15

encodeURIComponent

Poetro · 2010. Feb. 26. (P), 15.39
Minden változót, amit elküldesz megfelelően kódolni kell, JavaScript esetén erre a legalkalmasabb a encodeURIComponent.
  1. url += "?kat=tapeta&gyarto=" + encodeURIComponent(gyart);    
  2. url += "&katalog=" + encodeURIComponent(kat);    
  3. url += "&termek=" + encodeURIComponent(termek);    
  4. url += "&anyag=" + encodeURIComponent(anyag);    
  5. url += "&szin=" + encodeURIComponent(szin);    
  6. url += "&style=" + encodeURIComponent(style);    
  7. url += "&minta=" + encodeURIComponent(minta);    
16

Köszönöm

csman007 · 2010. Feb. 26. (P), 16.51
Köszön szépen most már működik minden böngésző alatt.