TORU Foorum

ajaxi ja php läbisaamine ei toimi

Whitedragon - 8.11.2010 21:23

Nii siis teen väikest viisi lehte ning jäin toppama ühele ajaxiga setuda asjale... Kuid kahjuks ise ei oska seda lahendada.
Koodi osad mis ei tööta
Kood:
$return .= '<a id="test" name="'.$row[$i]['id'].'" onclick="return javascript :false; kustuta();">Eemalda rida</a> ';

ajaxis selline kood:
Kood:
function kustuta(){ b2 = document.getElementById('test').innerHTML; qs = "action=remove_post&tid="+escape(b2); loadXMLDoc("request.php",qs,sonumid); }

õpetusi uurisin kuid ei mõistnud kuidas seda ajaxis tööle saada:(
request.php-s kõik töötab

Timukas - 8.11.2010 21:28

loadXMLDoc pole javascripti sisseehitatud funktsioon, seega on ilma ülejäänud koodi nägemata võimatu teada, mida see teeb.

Whitedragon - 8.11.2010 21:30

unustasin:D
Kood:
function loadXMLDoc(url,query_string,callback) { xml_obj = false; if(window.XMLHttpRequest) { try { xml_obj = new XMLHttpRequest(); } catch(e) { xml_obj = false; } } else if(window.ActiveXObject) { try { xml_obj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xml_obj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xml_obj = false; } } } if(xml_obj) { xml_obj.onreadystatechange = callback; xml_obj.open("POST", url, true); xml_obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xml_obj.send(query_string); } else{ alert("Failed to create XMLHttpRequest!"); } }

JAnx - 8.11.2010 21:34

Kasuta jQueryt.

http://api.jquery.com/jQuery.post/

Whitedragon - 8.11.2010 21:42

JAnx ajax usun et oleks parem... reaalselt muud asad töötavad seal ja jquery-t just hästi ei tunne.

Timukas - 9.11.2010 19:31

Kõigepealt nõustuks JAnxiga, JQuery-ga (mis kasutab ajaxit) asi tunduvalt lihtsam. Samas kui teisi JQuery funktsioone ei kasuta, siis ainult ajaxi pärast ka ei tasu.

Edaspidi võiksid *kogu* koodi postitada. Nüüd on puudu funktsiooni sonumid, kus tõenäoliselt viga peitub. Ise sain koodi tööle, kasutades sellist funktsiooni:
Kood:
function sonumid(){ if (xml_obj.readyState == 4){ if (xml_obj.status == 200){ alert(xml_obj.responseText); } else{ alert("There was a problem retrieving the XML data: " + xml_obj.statusText); } } }

ja täitsa algusesse:
Kood:
var xml_obj;

Whitedragon - 10.11.2010 10:52

ise uurisin ka koodi ning avastasin et viga peitub
'<a id="test" name="'.$row[$i]['id'].'" onclick="return javascript :false; kustuta();">Eemalda rida</a>' reas nimelt oleks mul vaja kätte saada name väärtus mitte Eemalda rida väärtuseks...

Timukas - 10.11.2010 11:14

Äkki viskaksid kogu koodi. Väga keeruline on sedasi ennustada. Näha olev kood teoorias töötab (kui eeldada, et muu osa on õige). Kirjavahemärkide kasutamine tuleks ka kasuks.

Whitedragon - 22.11.2010 10:43

Sain siis aega uuesti sellega tegeleda ja tegin funktsiooni mille parameeter on rea number ning sain tööle. Tänud kes aitasid.