Autor | Zpráva | ||
---|---|---|---|
dusanga Profil |
#1 · Zasláno: 25. 3. 2010, 09:39:27
Prosim o pomoc.
Chcem pomocou AJAX-XMLHTTPREQUEST zapisat premennu array do textoveho suboru na server. Mam nasledovny kod: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> <script type="text/javascript"> var prem=new Array(); prem[0]='prem c1'; prem[1]='prem c2'; prem[2]='prem c3'; function loadXMLDoc() { var url="pr_fopen_p.php"; if (window.XMLHttpRequest) {// kod pre IE7+, Firefox, Chrome, Opera, Safari var xmlhttp=new XMLHttpRequest(); } else {// kod pre IE6, IE5 var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4) { document.getElementById('test').innerHTML=xmlhttp.responseText } } xmlhttp.open('POST',url,true); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xmlhttp.send('pre='+prem); } </script> </head> <body> <div id="test"> <h2>Stlacenim BUTTONu zapis udaje do suboru test1.txt</h2> </div> <button type="button" onclick="loadXMLDoc()">Daj do suboru</button> </body> </html> PHP kod <html> <body> <?php echo ("Ulozime obsah premennej text do suboru subor.txt<br>"); $text = $_POST['pre']; $n_sub="test1.txt"; echo ($n_sub); echo ($text); $subor = fopen($n_sub, "a+"); fwrite($subor, $text); fclose($subor); ?> </body> </html> Po spusteni to vyhadzuje chybu v PHP kode , ze nepozna premennu 'pre'. Pokial to skusam s metodou 'GET' tak to ide v pohode. V PHP je pouzite $_GET a v HTML mam pouzite: var url="pr_fopen.php?pre="+prem; xmlhttp.open("GET",url,true); xmlhttp.send(null); Poradte ako to ma byt s POST. |
||
Radek9 Profil |
#2 · Zasláno: 25. 3. 2010, 14:08:34 · Upravil/a: Radek9
dusanga:
Tady máte moji univerzální funkci: function ajax(file, id, params){ var send, ajax_object = false; if(window.XMLHttpRequest){ ajax_object = new XMLHttpRequest(); } else if(window.ActiveXObject){ ajax_object = new ActiveXObject("Microsoft.XMLHTTP"); } if(ajax_object){ if(params){ send = ""; for(i in params){ i = encodeURI(i).replace(/\&/g, "%26"); params[i] = encodeURI(params[i]).replace(/\&/g, "%26"); send += i+"="+params[i]+"&"; } send = send.substr(0, send.length-1); ajax_object.open("POST", file, true); ajax_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ajax_object.setRequestHeader("Content-length", send.length); ajax_object.setRequestHeader("Connection", "close"); } else{ send = null; ajax_object.open("GET", file, true); } ajax_object.onreadystatechange = function(){ if(ajax_object.readyState==4 && ajax_object.status==200 && id!=""){ document.getElementById(id).innerHTML = ajax_object.responseText; } } ajax_object.send(send); } } ajax("soubor.php", "id_elementu");//Pro GET ajax("soubor.php", "id_elementu", {name1: "hodnota1", name2: "hodnota2"});//Pro POST |
||
dusanga Profil |
#3 · Zasláno: 25. 3. 2010, 23:00:47
Dakujem za reakciu na moj dotaz. Moc mi to sice nepomohlo, potrebujem zistit kde robim chybu a nie prevziat pracu nikoho ineho. Samozrejme vas kod prestudujem.
Este raz diky. |
||
Časová prodleva: 15 let
|
0