使用不引人注目的AJAX

时间:2010-11-10 17:29:20

标签: php ajax unobtrusive-javascript

我目前正在为一个大学项目开发​​一个待办事项列表,我想接受一些AJAX,但我也想让它兼顾两种方式(纯PHP和AJAX,如果是JavaScript的话)可用)。

在我的PHP方法中,我使用了一些嵌入的HTML代码(如 <td>$value</td>)。在AJAX上,我想我会从PHP文件中剥离HTML,取印刷结果部分离开,我只想将它添加到JavaScript(使用jQuery)代码,但这会使 PHP方法无法使用。

通过我见过的AJAX示例,处理数据的PHP文件不再能够工作独立,如果不是AJAX,则不会产生任何人性化的结果侧。所以我的问题是:你是否知道一个AJAX和PHP方法的实例,或者你能提供一个吗?

我希望自己清楚明白,因为我不是母语为英语的人。如果您需要澄清,请告诉我。

3 个答案:

答案 0 :(得分:2)

我建议使用'智能'php请求,其输出取决于传递给PHP的参数。

将数据作为网页获取,只需向php文件index.php

发出请求

但要将数据作为json获取,请使用查询字符串index.php?type=JSON

发出相同的请求

你的php必须有更多的逻辑,但它允许你以不同的格式从同一个地方请求相同的信息。这也允许您扩展格式以包括RSS,PDF(如果您有可用的文件)或其他任何内容。

答案 1 :(得分:1)

嗯,您不需要删除HTML。

您可以使用jQuery加载函数。

加载功能允许您在结果中进行搜索。 因此,如果你想用ajax加载第2页的表,你可以写:

$("#myTableContainer").load("mypage.php?page=2 #myTable");

这可能会将第1页表替换为第2页表。

查看http://api.jquery.com/load/

上的页脚导航示例

答案 2 :(得分:0)

直接从w3schools使用以下内容:

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>

</body>
</html>

你的php回调可以简单到:

<?php

  header('Content-Type: text/plain');
  echo "Hello World";

?>

虽然我建议您仔细查看JQuery以了解任何AJAX需求。