2013-03-17 3 views
1

Я хочу отправить случайное число в xml-файл с http-запросом и php. Но я не могу понять, как добавить значение сгенерированного числа и добавить его в сообщение.отправить POST с httprequest на php

Это то, что у меня есть до сих пор.

var x=document.getElementsByClassName("demo"); 
x[x.length-1].innerHTML=Math.floor((Math.random()*1000000)+1); 
// Generates a random number and print it on the last demo class 

var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    // document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","/project3/php/update.php",true); //Calls the php update file 
xmlhttp.send(); 

РНР файл

<?php 
     $dom = new DOMDocument(); 
     $dom->load('../stickers.xml'); 
     $stickers = $dom->documentElement; 
     $xpath = new DOMXPath($dom); 
     $result = $xpath->query('/stickers/sticker[id="$POST"]/id'); //Not sure. 
     $result->item(0)->nodeValue .= 'hi'; 
     echo $dom->saveXML(); 
     $dom->save('../stickers.xml'); 

?> 
+0

Любые причины не использовать JQuery с '$ .Post()'? – sdespont

+0

xmlhttp.open ("GET", "/ project3/php/update.php? Update =" + x [x.length-1] .innerHTML, true); – mplungjan

+2

@sdespont хорошо, да его для изучения цели. – Dymond

ответ

1

Метод get посылает параметры в виде строки запроса в URL, в то время как строка post запрос отправляется в пределах HTTP заголовков:

xmlhttp.open("POST","/project3/php/update.php",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("random="+x[x.length-1].innerHTML); 

На PHP-части вещей, переменные столбцов добавляются в глобальный ассоциативный массив следующим образом:

<?php echo $_POST['random']; 
+0

Okej, на самом деле я получаю результат. но похоже, что мой запрос все еще не прав. Есть идеи ? $ result = $ xpath-> query ('/ stickers/sticker' + $ _POST ['random'] + '/ id'); – Dymond

+0

@ Даймонд, что вы получаете, когда вы 'print_r ($ result)'? – Emissary

+0

Привет. извините, это была моя ошибка, смешали переменные. Его работа как шарм. был вот-вот написать это :) Спасибо большое! – Dymond

Смежные вопросы