【问题标题】:Dynamic row with JSON and PHP won't output data带有 JSON 和 PHP 的动态行不会输出数据
【发布时间】:2013-06-01 23:57:25
【问题描述】:

我无法生成包含数据的动态表行。使用 PHP 脚本从数据库中获取数据,并使用 jQuery 处理客户端。 此代码仅显示没有数据值的空表行。

有人可以检查它到底有什么问题吗?

js脚本:

if(odabrano === "g"){

$.getJSON("nutritional_value.php?value=" + encodeURI(value), function (data) {
var ttr = $("<tr />");    
$.each(data, function(k, v){
    $("<td />").text(v * (parseFloat(uneseno, 10) / 100)).appendTo(ttr);
});
$("#tejbl").append(ttr);
});

}

PHP 脚本:

<?php

include 'connect.php';

//$value = $_SERVER['QUERY_STRING'];
$value = $_GET['value'];


$query = mysql_query("SELECT NAME, FAT, FIBER, SUGARS FROM ccm WHERE NAME LIKE '$value%'");
while( $run = mysql_fetch_array($query)){
/*     $name = $run['NAME'];
    $fat = $run['FAT'];
    $fiber = $run['FIBER'];
    $sugars = $run['SUGARS'];  */

            $results = array();
            $results["name"]=$run['NAME'];
            $results["fat"]=$run['FAT'];
            $results["fiber"]=$run['FIBER'];
            $results["sugars"]=$run['SUGARS'];
            //Send it to the client in json format:
            echo(json_encode($results));

}


?>

【问题讨论】:

  • 您的 AJAX 调用是否在检索任何内容,或者数据显示有问题?
  • 检索数据时出现问题,我得到空行..
  • 试试alert(data.name),看看你的值是否正确。
  • @Spokey 我什至没有收到警报:S
  • @Filkatron 你能发布 JSON 吗?并添加.fail(),看看它是否有效。

标签: php jquery mysql sql json


【解决方案1】:

我认为您没有为 javascript 变量 value 传递值

如果您将 getJSON javascript 行更改为以下内容会发生什么:

$.getJSON("nutritional_value.php?value=banana",function(data){    

【讨论】:

  • 是的,这似乎是问题所在。当我这样做时没有任何反应。和之前一样。只有一行有空
  • 不,这表明这不是问题所在。我们看到 Nutrition_value.php?value=banana 返回正确的值,因此,如果您使用的 URL 提供了正确的值并且仍然看到空白 TD,那就是另外一回事了
  • 天哪,我刚刚又试了一次,但是使用下面的 js 代码,我得到了 填充了正确的值:D 只有名称是 NaN 而不是香蕉
  • 首先,您没有在 JavaScript 中正确设置 value 变量,然后再使用它来生成 URL。其次,javascript没有正确解析返回的数据,下面的javascript有帮助。
  • 那么我该如何解决这些问题呢?
【解决方案2】:

你可以试试这个

$.getJSON("nutritional_value.php?value=" + encodeURI(value), function (data) {
    var ttr = $("<tr />");    
    $.each(data, function(k, v){
        $("<td />").text(v * (parseFloat(uneseno, 10) / 100)).appendTo(ttr);
    });
    $("#tejbl").append(ttr);
});

对 PHP 文件的建议。

<?php

include 'connect.php';

if(isset($_GET['value'])){

$value = $_GET['value'];


$query = mysql_query("SELECT NAME, FAT, FIBER, SUGARS FROM ccm WHERE NAME LIKE '$value%'");

$results = array();

    while($run = mysql_fetch_array($query)){

       $results["name"] = $run['NAME'];
       $results["fat"] = $run['FAT'];
       $results["fiber"] = $run['FIBER'];
       $results["sugars"] = $run['SUGARS'];

    }

    echo json_encode($results);

}

?>

【讨论】:

  • 同样的事情发生了。 中没有值,只有空行:s
  • 试过了,还是一样。 :S
猜你喜欢
相关资源
最近更新 更多
热门标签