| 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: 16 let
|
|||
0