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