【问题标题】:Fetch data in format echo in Javascript function Var在Javascript函数Var中以格式回显获取数据
【发布时间】:2014-04-22 15:18:30
【问题描述】:

我正在尝试以格式从数据库中获取数据

['Wp-orders', 11],

这将在 javascript 中回显。我的代码在下面-

<?php
$query = $this->db->query('SELECT *, count(DISTINCT order_id) as total 
                           FROM wp_orders
                           WHERE order_status="processing"
                           GROUP BY webname
                           ORDER BY  webname');

foreach ($query->result_array() as $row) {
    $Cdata[] = "['".$row->webname."', ".$row->total."]";
}        
?>

我想在 javascript 函数中回显 {}

  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      //['Wp-orders',     11],
      <?php echo $Cdata; ?>
    ]);

我不知道我哪里做错了。

【问题讨论】:

  • 这和 cakephp 有什么关系??
  • 对不起.. Fazal

标签: javascript php database codeigniter


【解决方案1】:

您不能回显数组。也许你可以将它内爆成一个逗号分隔的字符串,如下所示:

<?php echo implode(',', $Cdata); ?>

编辑

另外,您正在使用$query-&gt;result_array(),它返回一个多维数组,然后使用对象语法尝试访问这些字段。

将您的查询代码改为使用$query-&gt;result()

foreach ($query->result() as $row) {
    $Cdata[] = "['".$row->webname."', ".$row->total."]";
}

或者,您可以保留查询并使用数组访问语法:

foreach ($query->result_array() as $row) {
    $Cdata[] = "['".$row['webname']."', ".$row['total']."]";
}

【讨论】:

  • @user3193372 用解决方案更新了我的答案
  • 我已经解决了这个问题 - $Cdata[] = "['".$row['webname']."', ".$row['total']."]"; ..在同一时间...巧合..谢谢
【解决方案2】:

如果你使用 JS,你需要 JSON

$a = array('sd', 'sds', 1);

echo json_encode($a); // ["sd","sds",1]

【讨论】:

    【解决方案3】:

    PHP:

    $i = 0;
    foreach ($query->result() as $row) 
    {
       $Cdata[$i]['webname'] = $row->webname;
       $Cdata[$i]['total'] = $row->total;
       $i++;
    }
    


    JS:

    var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
    
      <?php
         $size = sizeof($Cdata);
         for($i = 0; $i < $Cdata; $i++)
         {
             echo "['".$Cdata[$i]['webname']."', ".$Cdata[$i]['total']."]";
             if($i != $size-1)
             {
                 echo ",";
             }
         }
      ?>
    ]);
    

    【讨论】:

    • 它没有获取数据 $Cdata[] = "['".$row->webname."', ".$row->total."]";
    【解决方案4】:

    试试这个

    foreach ($query->result_array() as $row) {
        if($row->webname && $row->total){
             $Cdata[] = array($row->webname=>$row->total);
        }
    }
    
    
    
    var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
    
      <?php
         echo json_encode($Cdata);
      ?>
    ]);
    

    【讨论】:

    • 知道了 - [{"":null},{"":null}]
    • 在设置the array之前先做一个简单的条件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多