我正在编写一个简单的代码来选择单选按钮并通过AJAX将所选单选的值传递给php代码!
继承我的AJAX代码:
function sendid(attack)
{
var att;
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("result").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","battlephp.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("att="+attack+"");
}
</script>
</head>
<body>
<input type="radio" value="10" name="attack" onclick="sendid('this.value')"/> Attack 1
<input type="radio" value="20" name="attack" onclick="sendid('this.value')"/> Attack 2
我的php代码:
$attack = intval($_POST['att']);
echo "Working ".$attack;
我得到的输出是:
Working 0
哪个应该是“Working 10”或“Working 20”
当然它没有识别通过AJAX传递的att ..!但是我现在应该如何处理呢?
答案 0 :(得分:2)
这应该是
<input type="radio" value="10" name="attack" onclick="sendid(this.value)"/> Attack 1
<input type="radio" value="20" name="attack" onclick="sendid(this.value)"/> Attack 2
您不应将this.value
括在'
单引号中,因为如果用单引号括起来而不是对象属性,它会将其视为字符串