PHP 输出 JSON 数据
我已经连接到 mysql 数据库,并且尝试使用 jquery 使用数据库和 JSON 中的数据填充下拉菜单。
我对 JSON 没有太多经验,但我读过很多文章并在网上搜索了教程。
在我连接数据库的 PHP 中,最后几行正确格式化并输出 JSON:$response = $_GET["jsoncallback"] 。 "(" .json_encode($colors) . ")";
echo $response;
在 javascript 中,我使用:$.getJSON("db.php?jsoncallback=?", function(data){ //loop that populates the drop down });
我设置了 jquery 来获取 JSON 并填充下拉列表down,这也工作正常。但是,在 PHP 中创建的 JSON 数据会输出在我生成的页面的顶部。
IE, ([{"color":"紫色"},{"color":"红色"},{"color":"蓝色"},{"color":"粉色"},{"color": "Yello"}])
如何在页面上不输出 JSON 的情况下仍然访问 jsoncallback
?
I have connected to a mysql database and I am trying to use jquery to populate a drop down menu using data from the database and JSON.
I do not have much experience with JSON, but I have read many articles and searched the web for tutorials.
In my PHP to connect to the database, the last lines format and output the JSON correctly:$response = $_GET["jsoncallback"] . "(" . json_encode($colors) . ")";
echo $response;
In the javascript, I use:$.getJSON("db.php?jsoncallback=?", function(data){ //loop that populates the drop down });
I have jquery set up to grab the JSON and populate the drop down, which is also working correctly. However, the JSON data that is created in the PHP is outputted at the top of my generated page.
i.e.,([{"color":"Purple"},{"color":"Red"},{"color":"Blue"},{"color":"Pink"},{"color":"Yello"}])
How do I still access the jsoncallback
without outputting the JSON on my page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来您正在使用相同的文件来生成 JSON 输出并生成正常页面,这就是 JSON 将在页面顶部输出的原因。
尝试将 JSON 输出包装在 if 语句中,以防止输出,除非您需要它,即当您发出 AJAX 请求时,或者将 JSON 输出移动到专门用于处理 AJAX 请求的另一个文件,例如 ajax.php。下面是简单的例子。
更新 JS,传递新的 actions 参数。
新建 PHP 文件 ajax.php
It looks like you are using the same file to generate the JSON output aswell and generate your normal pages, which is why the JSON will output at the top of the page.
Try wrapping the JSON output in an if statement that prevents output unless you reqire it, ie when you make an AJAX request, or move the JSON output to another file such as ajax.php that is specifically for handling AJAX requests. Simple example below.
Updates JS, passing over a new actions param.
New PHP file ajax.php
以下内容是否在脚本块内?如果没有,那就必须如此。
就像这样:
Is the following inside a script block? If not, it needs to be.
Like so: