我使用 W3 Schools 的 AJAX PHP 示例 (http://www.w3schools.com/ajax/ajax_aspphp.asp) 作为我的访客列表网络应用的基础,该应用使用存储在LocalStorage,而不是 MySQL 数据库,以便用户能够在离线时进行搜索。现在我正在尝试完成搜索 guest 部分。
这是它的工作原理(与上面的示例不同):
- (index.php)。将 MySQL 数据库中的所有记录放置/镜像到 JavaScript 数组
- (index.php)。将上述js数组存储到LocalStorage
- (index.php)。通过使用示例中使用的 AJAX GET 代码, 将搜索到的项目发送到 getData.html(一个 html 文件而不是 php 文件,就像 W3 一样)
- (getData.html)。成功获取到搜索到的item 网址参数
- (getData.html)。循环遍历并匹配值,就像在 上面的例子(代码用 javascript 重写)。
但是我的成功到此结束。 AJAX 代码与上面提供的示例中的代码相同(当然除了对 getData.html 的引用),其他一切似乎都正常工作,所以我不会用我的全部代码来打扰你。在提到的示例中,在 PHP 文件的最底部,它说
//output the response
echo $response;
这是 javascript 似乎失败的地方。我一直在拼命尝试回显/打印响应,但由于某种原因,它没有正确返回到 index.php。 强制它至少显示某些内容的唯一方法是要么使用 php echo,或者只是在 HTML 标记内的 getData 文档中的某处写入纯 html 文本。我也试过 getElementById('txtHint').innerHTML = "hello";看看它是否有效,但没有成功。
最明显的方法是简单地用 js 中的等价物替换 echo $response:
document.write(response);
但是无论 document.write 打印什么,都不会显示任何内容。应该弹出“提示”的 div 还为空。我已经用谷歌搜索了解决方案,打印 js 变量的不同方式没有进一步的成功。也许,document.write 与 XML 或 AJAX responseText 不“兼容”?必须有一个简单的解决方案来解决这个问题。希望你们能帮助我。谢谢!
最佳答案
php 当然是一种服务器端语言,它发出一个页面并在您的后端运行。
js当然是一种运行在用户前端的客户端语言。
document.write() 是发出客户端文本的正确函数;它在页面加载时运行。示例:
<b>My domain is: <script>document.write(document.domain);</script></b>
适本地给予
My domain is: www.mydomain.com
关于javascript - PHP 到 JS : printing js variable (like PHP echo) compatible with AJAX responseText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068584/