在php中接收JavaScript值时出错

Error in receiving JavaScript value in php

本文关键字:出错 JavaScript php      更新时间:2023-09-26

我正在编写一个简单的代码来选择一个单选按钮,并通过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

应为"工作10"或"工作20">

当然,它并没有识别通过AJAX传递的att。。!但是我现在该怎么处理呢??

这应该是

<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括起来,因为如果您用单引号而不是对象属性

将其视为字符串