AJAX POST未收到正确的值

时间:2014-04-22 15:41:29

标签: javascript php ajax

我想发布所选单选按钮的值,但PHP中的$ _POST变量已被分配'未定义',我需要更改什么才能使$ _POST获得正确的值?我在想它可能是因为我没有使用过URIencode,但是当我使用它时,我的JavaScript甚至没有得到这个元素。

JAVASCRIPT

function rappoll(){
    var xmlHTTPreq;
    var url = "poll.php";
    var params="name="+name;
    var elements = document.getElementsByName("elements");
    var checkedButton = getName(elements);

if (checkedButton) {
    var name = checkedButton.value;
}

if (window.XMLHttpRequest) {
    try {
        xmlHTTPreq = new XMLHttpRequest();
    } catch(e) {
        xmlHTTPreq = false;
    }
} else {
    try{
        xmlHTTPreq = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
        xmlHTTPreq = false;
    }
}

xmlHTTPreq.open("POST", url, true);
xmlHTTPreq.onreadystatechange = function()
{
    if(xmlHTTPreq.readyState == 4 && xmlHTTPreq.status == 200){
        document.getElementById('poll').innerHTML = xmlHTTPreq.responseText;
    }
}
xmlHTTPreq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHTTPreq.send(params);

}

function getName(group){
for (var i = 0; i < group.length; i++) {
    var button = group[i];
    if (button.checked) {
        return button;
    }
}
return undefined;

}

PHP

$name = $_POST['name'];

1 个答案:

答案 0 :(得分:3)

您在此处声明并指定params

var params="name="+name;

由于name未定义,params现在为"name=undefined"。请注意,由于变量提升,name 声明 ,因此您不会看到undefined variable 'name'

分配name后,您还必须重新分配params,或更改此行:

xmlHTTPreq.send(params);

xmlHTTPreq.send("name=" + name);