2

我使用 W3 Schools 的 AJAX PHP 示例 (http://www.w3schools.com/ajax/ajax_aspphp.asp) 作为我的访客列表 Web 应用程序的基础,该应用程序使用存储在LocalStorage而不是 MySQL 数据库中的数据,以便用户可以在离线时进行搜索。现在我正在尝试完成搜索客人部分。

这就是它的工作原理(与上面的示例不同):

  1. (索引.php)。将 MySQL db 中的所有记录放置/镜像到 javascript 数组中
  2. (索引.php)。在 LocalStorage 中存储上述 js 数组
  3. (索引.php)。通过使用示例中使用的 AJAX GET 代码,将搜索到的项目发送到 getData.html(一个 html 文件而不是 W3 中的 php 文件)
  4. (getData.html)。通过url参数成功获取到搜索到的item
  5. (getData.html)。像上面的例子一样循环和匹配值(用javascript重写的代码)。

这里结束了我的成功。AJAX 代码与上面提供的示例中的代码相同(当然除了对 getData.html 的引用),其他一切似乎都在工作,所以我不会用我的整个代码来打扰你。在提到的示例中,在 PHP 文件的最底部它说

    //output the response
    echo $response;

这是javascript似乎失败的地方。我一直在拼命地尝试回显/打印响应,但由于某种原因,它没有正确返回到 index.php。强制它至少显示某些内容的唯一方法是使用 php echo,或者只是在 HTML 标记内的 getData 文档的某处写入纯 html 文本。我也试过 getElementById('txtHint').innerHTML = "hello"; 看看它是否有效但没有成功。

最明显的方法是简单地将 echo $response 替换为 js 中的等价物:

    document.write(response);

但无论 document.write 打印什么,都没有显示任何内容。应该弹出“提示”的 div仍然是空的。我用谷歌搜索了解决方案,打印js变量的不同方式没有进一步的成功。也许,document.write 与 XML 或 AJAX responseText 不“兼容”?必须有一个简单的解决方案。希望你们能帮帮我。谢谢!

4

1 回答 1

0

php 当然是一种服务器端语言,它发出一个页面并在您的后端运行。
Node.js 当然是一种运行在用户前端的客户端语言。
document.write() 是发出客户端文本的正确函数;它在页面加载时运行。例子:

<b>My domain is: <script>document.write(document.domain);</script></b>

适当地给予

我的域名是:www.mydomain.com

于 2013-03-20T22:04:46.080 回答