下面是我单击屏幕上的按钮时要运行的脚本。基本上使用AJAX来查询我的数据库以获得更多结果。问题是,我对Javascript非常陌生,每当页面加载时,而不是当我点击应该调用它的按钮时,这个脚本就会运行。
<script type="text/javascript">
function next_ten_results()
{
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("main").innerHTML=xmlhttp.responseText;
}
}
var page = "<?php echo $page_count; ?>";
alert('the city of ' + page + '!');
var name = "<?php echo $sql_name; ?>";
var rest_location = "<?php echo $sql_location; ?>";
xmlhttp.open("GET","another_ten_results.php?location="+rest_location+"&rest_name="+name+"&page="+page,true);
xmlhttp.send();
}
</script>
感谢各位读者!我确信我犯了一个简单的错误,比如我需要等待文件准备好或其他什么,但正如我所说,我是个新手。如有任何帮助和建议,我们将不胜感激。
干杯!
EDIT:在需要时调用此函数的代码。。。即使代码在没有它的情况下运行:
if($num_rows > 9){
echo '<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>'; }
EDIT(2):为了将来参考,问题(如上Cody所述)是我在onclick事件之前忘记了<a...
。这就是导致代码以某种方式运行的原因。更改后,javascript查询按计划运行。错误实际上在HTML中。
干杯!
对于那些访问这里寻找答案的人:
调用javascript函数的HTML无效。没有以<onclick ...
开头的标记。我们可以通过结束标记</a>
来判断这应该是一个链接。
用<a onclick
替换<onclick
可以解决这个问题。
将我的答案移动到一个答案,而不是原来的注释:
您正在回显'<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>';
,它正在创建一个名为的标记。您缺少<a
,这意味着它是一个无效的标记。