2017-04-21 13 views
0

私はjson経由でデータを送信します。それがうまく機能している:json経由でループデータを送信するにはどうすればよいですか?

:その代わりに

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

私の問題は今

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

json.php ..

blue array 

を...私が送りたいです

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

これは可能ですか?

+1

echoを使用しないでください。その代わりに、それらのhtmlタグを文字列として '$ array ['blue']'に直接割り当てます。 '$ array ['blue']。="

  • "。$ row ['name']"
  • "; – siddiq

    +0

    @siddiqありがとう、私の内容はより複雑であることを示すために質問を更新しました。この場合、私は何ができますか? – Jarla

    +1

    あなたの弦がどれほど大きくても。それでも出力全体が文字列として扱われます。以前のコメントごとに変数に代入するだけです。チェック[リンク](http://stackoverflow.com/questions/41478701/putting-html-content-between-phpfunction/41479160#41479160)これは大きなhtmlコンテンツを割り当てる – siddiq

    答えて

    1

    はここで非常に基本的な例です:あなたが実際にredを移入するために使用しますが、あなたは、whileループまたは何にそれを働かせることができるどのようなロジック

    <?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); 
    

    わかりません。

    +0

    ありがとう、私はこれをチェックし、それが働いた場合は、あなたに知らせてください – Jarla

    +0

    ループにするべきではありません! – Jarla

    +1

    @Jarlaそれはちょうど推測だった。コードは自由に変更できます。私の更新を参照してください。 – MonkeyZeus

    関連する問題