【问题标题】:How to JSON data using $.getJSON from a php file?如何使用 $.getJSON 来自 php 文件的 JSON 数据?
【发布时间】:2011-04-27 09:14:09
【问题描述】:

我有一个从 mySQL 表接收数据的 php 文件。 mySQL 表 'user_spec' 只有一个字段 'options' 它返回。然后我将返回的数据转换为 JSON,下面是执行此操作的代码。

<?php 
 $username = "user"; 
 $password = "********"; 
 $hostname = "localhost"; 
 $dbh = mysql_connect($hostname, $username, $password) or die("Unable to connect  
         to MySQL"); //print "Connected to MySQL<br>"; 
 $selected = mysql_select_db("spec",$dbh) or die("Could not select first_test"); 
 $query = "SELECT * FROM user_spec"; 
 $result=mysql_query($query);  
 echo json_encode(mysql_fetch_assoc($result)); 
?> 

然后在 HTML 文件中,我尝试通过这段代码输出数据,但它不起作用。我将非常感谢任何帮助。

<html>
    <head>
    <script type="text/javascript"   
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" language="javascript">
    function Preload() {
    $.getJSON("Dhttp://localhost/conn_mysql.php", function(json){
    alert("JSON Data: " + json.user_spec);
    });}

    </script></head>
    <body onLoad="Preload()">
    </body>
    </html> 

【问题讨论】:

  • 检查控制台是否有错误。而mysql_fetch_assoc($result) 只会获取结果的第一行。
  • 我已经编辑了代码,它现在正在工作,虽然只获取第一行。我怎样才能获取所有行?

标签: php javascript jquery mysql json


【解决方案1】:
  1. 缺少 Jquery? 我假设您向我们提供了 HTML 文件的示例,并且您在页面上引用了 jquery 脚本。
  2. 语法错误? 正如 Felix 所写 - 使用 firebug 控制台或类似的控制台来检测错误。
  3. PHP 错误? 尝试使用浏览器获取 json 响应 - 看看是否有响应。
  4. 地址错误?尝试使用绝对链接而不是相对链接

希望这为您提供一些选项来缩小您面临的问题。

【讨论】:

  • 抱歉,缺少参考。我正在使用记事本,所以没有控制台,但现在我将开始使用 firebug 或类似的东西。是的,绝对链接解决问题到此为止。
【解决方案2】:

我认为不要使用文件地址:"D:xampp/htdocs/conn_mysql.php",您必须使用 xampp 定义的 url,例如 "http://localhost/ mytest/conn_mysql.php"

您需要注意的另一件事是方法。 $.getJSON (http://api.jquery.com/jQuery.getJSON/),顾名思义,与 GET 方法一起使用。也许您应该尝试 $.post$.ajax (http://api.jquery.com/jQuery.post/)。

哦!要启动您的脚本,并非所有浏览器都支持

。此外,它等待页面加载,而不是 DOM,这有时会给您的脚本带来问题。 你应该使用 $('document').ready(function(),等待 DOM 被加载。 这样:
<script type="text/javascript">
$('document').ready(function()
{

    $.getJSON("D:xampp/htdocs/conn_mysql.php", function(json){
    alert("JSON Data: " + json.options);

});
</script>

希望对你有用! ^^

【讨论】:

  • thanX a Lot Jayme:-) 将文件地址从 D:xampp/htdocs/conn_mysql.php 更改为 localhost/conn_mysql.html 开始运行应用程序。可能还有其他问题需要纠正,我会发现,尝试纠正并可能会问。但现在它工作了,我可以看到前方!
  • 不客气! ;D 使用此函数获取所有数据:mysql_fetch_array()。这是文档:php.net/manual/en/function.mysql-fetch-array.php 要处理数据,您需要使用 $.each() 或类似的东西,但它几乎就在那里! ;D
猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2017-03-09
相关资源
最近更新 更多