У меня есть проблема Проводка переменной javascript в файл php. Пожалуйста, кто-нибудь скажет мне, что происходит?
// Get Cookies var getCookies = document.cookie; cookiearray = getCookies.split(';'); SelectedIds = cookiearray[0]; //take key value pair name = cookiearray[0].split('=')[0]; value = cookiearray[0].split('=')[1]; // The variable(values) i want to pass // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); hr.open("POST", url, true); var url = "page.php"; hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("Comp").innerHTML = return_data; } } hr.send(value); // Request - Send this variable to PHP document.getElementById("Comp").innerHTML = "loading...";
PHP
$test = $_POST['value']; print_r($test); // NULL
благодаря
Вместо
print_r($test);
использовать эхо
echo $test;
Поскольку $test
не является массивом, это строковое значение. print_r
используется для печати массива. поэтому дается нулевое значение.
И ваша функция отправки в ajax должна быть такой:
hr.send("value="+value);
В функции send передаваемый параметр должен быть такой:
"name=value&anothername="+encodeURIComponent(myVar)+"&so=on"
Больше учебника здесь.