0

在页面头部使用这段代码:

<script type="text/javascript">

function vote() {

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById('results').innerHTML = xmlhttp.responseText;
        }
    } 

    xmlhttp.open('GET', 'update.inc.php', true);
    xmlhttp.send();
}
</script>

和这段 html 代码:

<a id="vote" name="vote" onClick="vote();">Link</a>

单击链接时一切正常,执行 update.inc.php 并输出到屏幕。所以我知道ajax是正确的。

但是,使用这段 php 代码

echo "<form>
        <input type=\"radio\" name=\"vote\"> yes
        <input type=\"radio\" name=\"vote\"> no
        <input type=\"button\" value=\"$count\" onClick=\"vote();\">
    </form>";

当我单击输入按钮时,函数 vote() 不再触发。我在这个回声语句中做错了什么?

4

1 回答 1

4

问题是您的 2 个单选按钮的名称在函数名称和收音机名称vote之间不明确。vote所以只需重命名您的函数:

echo "<form>
        <input type=\"radio\" name=\"vote\"> yes
        <input type=\"radio\" name=\"vote\"> no
        <input type=\"button\" value=\"$count\" onClick=\"doVote();\">
    </form>";

和:

function doVote() {
    ...    
}

如果您愿意,也可以重命名您的单选按钮。

于 2012-06-30T21:42:13.993 回答