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:

var xmlhttp;

function showCucc(str)
{

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("A böngésző nem támogatja a HTTP Request-et");
  return;
  }
var url="getpict.php";
url=url+"?kat="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("mutat").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}
a lényegi kérdés hogy ezt össze lehetne hozni valahogy a
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:

gyart = document.getElementById("g").value;
kat = document.getElementById("k").value;
termek = document.getElementById("t").value;
anyag = document.getElementById("a").value;
szin = document.getElementById("sz").value;
style = document.getElementById("s").value;
minta = document.getElementById("m").value;

var url="files/getpict.php";
url=url+"?kat=tapeta&gyarto="+gyart;
url=url+"&katalog="+kat;
url=url+"&termek="+termek;
url=url+"&anyag="+anyag;
url=url+"&szin="+szin;
url=url+"&style="+style;
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ő:

var xmlhttp;

function showCucc()
{

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }

gyart = document.getElementById("g").value;
kat = document.getElementById("k").value;
termek = document.getElementById("t").value;
anyag = document.getElementById("a").value;
szin = document.getElementById("sz").value;
style = document.getElementById("s").value;
minta = document.getElementById("m").value;

var url="files/getpict.php";
url=url+"?kat=tapeta&gyarto="+gyart;
url=url+"&katalog="+kat;
url=url+"&termek="+termek;
url=url+"&anyag="+anyag;
url=url+"&szin="+szin;
url=url+"&style="+style;
url=url+"&minta="+minta;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("mutat").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  //IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  //IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

é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:

var url="files/getpict.php";
url=url+"?kat=tapeta&gyarto="+gyart;
url=url+"&katalog="+kat;
url=url+"&termek="+termek;
url=url+"&anyag="+anyag;
url=url+"&szin="+szin;
url=url+"&style="+style;
url=url+"&minta="+minta;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
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.
url += "?kat=tapeta&gyarto=" + encodeURIComponent(gyart);  
url += "&katalog=" + encodeURIComponent(kat);  
url += "&termek=" + encodeURIComponent(termek);  
url += "&anyag=" + encodeURIComponent(anyag);  
url += "&szin=" + encodeURIComponent(szin);  
url += "&style=" + encodeURIComponent(style);  
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.