在页面的头部使用这段代码:
<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()不再触发。我在这个echo语句中做错了什么?
答案 0 :(得分: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() {
...
}
如果您愿意,可以或重命名您的单选按钮。