我使用 W3 Schools 的 AJAX PHP 示例 (http://www.w3schools.com/ajax/ajax_aspphp.asp) 作为我的访客列表 Web 应用程序的基础,该应用程序使用存储在LocalStorage而不是 MySQL 数据库中的数据,以便用户可以在离线时进行搜索。现在我正在尝试完成搜索客人部分。
这就是它的工作原理(与上面的示例不同):
- (索引.php)。将 MySQL db 中的所有记录放置/镜像到 javascript 数组中
- (索引.php)。在 LocalStorage 中存储上述 js 数组
- (索引.php)。通过使用示例中使用的 AJAX GET 代码,将搜索到的项目发送到 getData.html(一个 html 文件而不是 W3 中的 php 文件)
- (getData.html)。通过url参数成功获取到搜索到的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"; 看看它是否有效但没有成功。
最明显的方法是简单地将 echo $response 替换为 js 中的等价物:
document.write(response);
但无论 document.write 打印什么,都没有显示任何内容。应该弹出“提示”的 div仍然是空的。我用谷歌搜索了解决方案,打印js变量的不同方式没有进一步的成功。也许,document.write 与 XML 或 AJAX responseText 不“兼容”?必须有一个简单的解决方案。希望你们能帮帮我。谢谢!