【问题标题】:How to ignore specific echo when returning data to AJAX request将数据返回到 AJAX 请求时如何忽略特定的回显
【发布时间】:2018-03-12 18:54:31
【问题描述】:

我想使用 ajax 调用从数据库中获取信息,然后将此信息以 JSON 格式的数据返回给 ajax 函数。 (我这样做是为了在指定的时间间隔内更改内容)。

所以在 PHP 文件中我使用 "echo" 和 "json_encode" 来返回 SQL 查询数据。

但也有来自dbconfig.php文件的回显,该文件是用来连接数据库的文件。 (如果连接成功,它有echo "Connected Successfully";)

【问题讨论】:

  • 为什么不能只在连接失败时回显?此外,由于您使用的是json,因此您可以在连接失败时轻松发送失败的json 响应
  • 或者在dbconfig.php中完全不回显?
  • 所以你建议连接成功时根本不回显?(仅在连接失败的情况下)实际上我是初学者,我可能从某些网站复制连接代码所以我是肯定回声不是一件坏事,但似乎确实会引起问题。但是我发回数据的一般想法可以吗?即:对 PHP 文件的 AJAX 调用 > 使用 SQL 查询获取数据 > json_encode 返回 AJAX 函数?谢谢
  • 如果响应是 JSON,只返回有效的 JSON。如果您有错误消息,除了设置正确的响应代码之外,这些也可以放入 JSON 响应中。

标签: php jquery ajax


【解决方案1】:

最简单的方法显然是编辑 dbconfig.php 以删除 echo 语句。它不是真的有用;它只是包含在教程/示例中,因此您可以看到正在发生的事情。

如果(无论出于何种原因)您被限制更改该文件,您可以将其包含在输出缓冲区中,以防止该状态消息与您的 JSON 一起输出。

ob_start();
include 'dbconfig.php';
$connectionStatus = ob_get_clean();

// do your other stuff

【讨论】:

  • 谢谢,我可以问一些与我最初的问题相关的问题:动态更改内容的总体思路是否正确?在我的代码中:首先对获取数据的 PHP 脚本进行 AJAX 调用。从那个 PHP 文件回显数据,并在成功的 AJAX 调用中触发一个更改内容的函数?或者你会做其他事情?比如我想改变一个div的内容,每1分钟显示不同的新闻标题,标题存储在数据库中的“新闻”表中
  • 这听起来像是一种非常标准的方法。尽管您可能希望加载一组标题而不是一个标题,并在加载另一组之前循环浏览它们一段时间,以减少请求的数量。不过,就您的总体想法而言,这听起来不错。
  • 实际上,我尝试了具有多个间隔的单个请求,并且网络确实变慢了。你的想法显然是正确的!所以我真的只需要加载一次并通过常规的 JS / Jquery 函数循环:)!你是天才
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多