在php中接收JavaScript值时出错

时间:2014-05-14 12:34:05

标签: javascript php ajax

我正在编写一个简单的代码来选择单选按钮并通过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 ..!但是我现在应该如何处理呢?

1 个答案:

答案 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括在'单引号中,因为如果用单引号括起来而不是对象属性,它会将其视为字符串