为什么我的javascript脚本在页面加载时运行而不是onclick?

时间:2012-09-07 22:50:35

标签: php javascript ajax onclick

以下是我在单击屏幕上的按钮时要运行的脚本。基本上使用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>  

感谢您的阅读!我确信我犯了一个简单的错误,就像我需要等待文件准备好或者其他什么,但正如我所说,我非常新。任何帮助和建议表示赞赏。

干杯!

编辑:在需要的情况下调用此函数的代码...即使代码在没有它的情况下运行:

if($num_rows > 9){
      echo '<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>'; }

编辑(2):为了将来参考,问题(如上所述,Cody)是我在onclick事件之前忘记了<a...。这就是导致代码以某种方式运行的原因。更改后,javascript查询按计划工作。错误实际上在HTML中。

干杯!

2 个答案:

答案 0 :(得分:0)

对于那些正在寻找答案的人:

调用javascript函数的HTML无效。没有以<onclick ...开头的标记。我们可以通过结束标记</a>来判断这应该是一个链接。

<onclick替换<a onclick可以解决问题。

答案 1 :(得分:0)

将我的答案移到答案而不是最初的评论:

你正在回复'<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>';正在创建一个名为的标签。 你错过了<a,这意味着它是一个无效的标签。