我想发布所选单选按钮的值,但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'];
答案 0 :(得分:3)
您在此处声明并指定params
:
var params="name="+name;
由于name
未定义,params
现在为"name=undefined"
。请注意,由于变量提升,name
声明 ,因此您不会看到undefined variable 'name'
。
分配name
后,您还必须重新分配params
,或更改此行:
xmlHTTPreq.send(params);
到
xmlHTTPreq.send("name=" + name);