如何多次加载AJAX来分别更改页面(页码)?

时间:2012-02-21 11:57:14

标签: php html ajax

我有这样的事情: (忽略代码的丑陋)。

<code><script type="text/javascript">
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
  if (xmlhttp.readyState==4){
        document.getElementsByTagName("html")[0].innerHTML = xmlhttp.responseText;
  }
}

function send(){
    xmlhttp.open("GET","search.php?term=" + "tom" + "&page=1", true);
    xmlhttp.send();
}
</script>
</code>

制作对象,一旦页面加载,然后我单击输入按钮以触发“send()”方法 - 它不起作用:/

我必须创建一个页面,我可以使用AJAX动态更改页面。我有2个按钮 “&lt;&lt; ”返回一页 “&gt;&gt; ”要出去 所以,当我(假设)index.php加载时,我想要加载2页(第1页和第1页),所以当我点击其中一个按钮时,它会显示页面内容(没有刷新页面。)

有人能帮助我吗? 附:抱歉我的英文。

谢谢! :)

编辑:当我做2个AJAX加载时(获取curPage-1和currentPage + 1)我如何存储内容以便以后可以访问它们(让我们说..警告,哈哈)。


不,它不起作用,即使是最简单的一个:

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>

function click() {
    $("body").load("search.php");
}

</script>
</head>
<body>
    <input type="button" value="Click Me!" onclick="click()"/>
</body>
</html>

<?php //search.php
    echo "ajax!?";
?>

那我在这里错过了什么?


尝试在这里解释我的问题(再次):我有一个网页,其中有一个(比如说)10个项目的列表。一切都来自GET方法(能够直接从URL更改参数; ..?page = 4&amp; term = Star%20Wars)。有一个输入框(用于搜索)和“后退”和“前进”按钮(用于前后移动)。现在它的工作原理如下:寻找一本名为“星球大战”的书。我会被重定向到同一页面并且PHP开始(获得参数 - $ _GET ['page / term'])。 ..然后我有2个漂亮的变量:page = 2 term =“星球大战”显示第2页的项目。

..当按下“下一页”按钮时,AJAX将加载下一页,页面变量递增(页面= 3);所以我从第3页获取内容(整个HTML),然后显示数据,替换body元素或其他......

现在,这只是一个介绍,问题是:在我需要点击按钮之前,如何进行2次AJAX调用(将“onload”添加到body?)。如何存储2页的内容(第2页和第4页的内容;当前页为3时)和 当我真正点击按钮时,我不必等待页面加载(虽然页面永远不会刷新),我可以获得数据IMMEDIALITY。

页面加载时间长(+3秒),因为我正在使用外部API来显示项目。

希望我有道理..

对于奇怪的消息感到抱歉(一切看起来更好,发布之前,哈哈),当然还有 - 我的英语语法。

问候

编辑:

不,它不起作用,即使是最简单的一个:

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>

function click() {
    $("body").load("search.php");
}

</script>
</head>
<body>
    <input type="button" value="Click Me!" onclick="click()"/>
</body>
</html>

<?php //search.php
    echo "ajax!?";
?>

那我在这里错过了什么?


尝试在这里解释我的问题(再次):我有一个网页,其中有一个(比如说)10个项目的列表。一切都来自GET方法(能够直接从URL更改参数; ..?page = 4&amp; term = Star%20Wars)。有一个输入框(用于搜索)和“后退”和“前进”按钮(用于前后移动)。现在它的工作原理如下:寻找一本名为“星球大战”的书。我会被重定向到同一页面并且PHP开始(获得参数 - $ _GET ['page / term'])。 ..然后我有2个漂亮的变量:page = 2 term =“星球大战”显示第2页的项目。

..当按下“下一页”按钮时,AJAX将加载下一页,页面变量递增(页面= 3);所以我从第3页获取内容(整个HTML),然后显示数据,替换body元素或其他......

现在,这只是一个介绍,问题是:在我需要点击按钮之前,如何进行2次AJAX调用(将“onload”添加到body?)。如何存储2页的内容(第2页和第4页的内容;当前页为3时)和 当我真正点击按钮时,我不必等待页面加载(虽然页面永远不会刷新),我可以获得数据IMMEDIALITY。

页面加载时间长(+3秒),因为我正在使用外部API来显示项目。

希望我有道理..

对于奇怪的消息感到抱歉(一切看起来更好,发布之前,哈哈),当然还有 - 我的英语语法。

问候

1 个答案:

答案 0 :(得分:1)

我建议使用javascript框架(例如jQuery)来缓解ajax的一些复杂性。

使用jQuery,您可以执行以下操作:

<!-- index.html -->
<html>
  <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
      function click() {
        $("body").load("search.php?term=" + "tom" + "&page=1");
      }
    </script>
  </head>
  <body>
    <input type="button" value="Click Me!" onclick="click()"/>
  </body>
</html>

使用 search.php

<?php
// search.php
echo "<b>This is loaded by ajax!</b>";

希望这能让你走上正轨。