在页面头部使用这段代码:
<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() 不再触发。在这个回声陈述中,我做错了什么?
问题是您的 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() {
...
}
或者,如果您愿意,可以重命名单选按钮。