Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的json_编码_Php_Javascript_Ajax_Json - Fatal编程技术网

php中的json_编码

php中的json_编码,php,javascript,ajax,json,Php,Javascript,Ajax,Json,我有这个脚本,它工作,但不是我所期望的。我需要分配一个具有不同名称的值数组,现在所有$arr[]都命名为valor {"valor":"20"},{"valor":"50"} 我需要 {"valor1":"20"},{"valor2":"50"} 剧本 $query = mysql_query("SELECT valor FROM grafico") or die(mysql_error()); $arr = array(); while($row = mysql_

我有这个脚本,它工作,但不是我所期望的。我需要分配一个具有不同名称的值数组,现在所有$arr[]都命名为valor

{"valor":"20"},{"valor":"50"}
我需要

{"valor1":"20"},{"valor2":"50"}
剧本

    $query = mysql_query("SELECT valor FROM grafico") or die(mysql_error());

    $arr = array();
    while($row = mysql_fetch_assoc($query)) {
        $arr[] = $row;
    }
    echo json_encode($arr);


in ajax

    <script type="text/javascript">
       jQuery(document).ready(function(){
          jQuery("button").click(function(){

             jQuery.ajax({
                url: "chart.php",
                dataType: "json", 
                success: function(json){
                   var msg = "Nome: " + json.valor1+ "\n";
                   msg += "Sobrenome: " + json.valor2 + "\n";

                   alert(msg);
                }
             });
          });
       });

       </script>
问题是:我需要创建一个循环来创建uniques名称,如value1、value2、value3

$arr['valor1']=Evandro

我尝试了一个循环,但是我得到了一个内存错误

谢谢

这是否会导致内存错误?不应该。试试这个:

$query = mysql_query("SELECT valor FROM grafico") or die(mysql_error());

$arr = array();
$i = 1;
while($row = mysql_fetch_assoc($query)) {
    $arr[] = array("valor{$i}" => $row["valor"]);
    ++$i;
}
echo json_encode($arr);
应该有用。或者,如果要使其与当前回调一起工作,请将$arr[]=行更改为以下内容:

    $arr["valor{$i}"] = $row["valor"];

除非您的查询返回的值多得难以置信。结果是[{valor1:20},{valor2:50}]?>但警报不起作用。这应该有用,对吧?你确定应该是jQuerybutton而不是jQuerybutton?此外,请尝试在回调函数的最顶部发出警报,警告中会显示valor1:undefined,valor2也是如此。谢谢这个问题是[]-[{valor1:20},{valor2:50}],但是如果我在[]中删除$arr,只显示第二个值,{valor2:50}更新了答案以处理回调。只是一个旁注——我猜,不要用西班牙语称呼你的变量valor值——它可能意味着什么。这就像叫你的狗。很明显,这是一种价值。问题是究竟是哪一种?如果是名字,就叫它名字。如果是用户详细信息,请相应地调用它,等等。
    $arr["valor{$i}"] = $row["valor"];