2017-04-21 86 views
0

我通过json发送数据。它运作良好:如何通过json发送循环数据?

$.ajax({ 
     url: "json.php", 
     type: "POST", 
     dataType: "json", 
     encode: true, 
     data: {}, 
     success: function (data) { 
      $(".blue").html(data.blue); 
      $(".red").html(data.red); 
     } 
    }); 

json.php现在

$array['blue'] = "blue array"; 
$array['red'] = "red content"; 
echo json_encode($array); 

我的问题是,而不是..

blue array 

...我想送:

$pdo = $db->query('SELECT * FROM data;'); 
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) { 
    echo "<li>".$row['name']."</li>"; 
} 

这是可能的吗?

+1

请勿使用回声。相反,直接将这些html标签作为字符串分配给'$ array ['blue']'。像$ array ['blue']。=“

  • ”。$ row ['name']。“
  • ”;' – siddiq

    +0

    @siddiq谢谢,我更新了我的问题以表明我的内容更复杂。在这种情况下我能做什么? – Jarla

    +1

    无论你的字符串有多大。仍然整个输出将被视为一个字符串。按照我以前的评论,将它分配给变量。检查[链接](http://stackoverflow.com/questions/41478701/putting-html-content-between-php-function/41479160#41479160)这个分配一个大的html内容 – siddiq

    回答

    1

    下面是一个非常简单的例子:

    <?php 
    $json = array(
        'blue' => '', 
        'red' => 'Empty red content or whatever' 
    ); 
    
    $pdo = $db->query('SELECT * FROM data;'); 
    while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) { 
        $json['blue'].= "<li>".$row['name']."</li>"; 
    } 
    
    echo json_encode($json); 
    

    不知道你会用什么逻辑来真正填充red,但你可以工作到while循环或什么的。

    +0

    谢谢,我会检查这一点,并让你知道它是否工作 – Jarla

    +0

    红色不应该在循环中! – Jarla

    +1

    @Jarla这只是一个猜测。不管你想要什么,你都可以修改代码。查看我的更新。 – MonkeyZeus