2017-01-24 1 views
-1

私はJavaScriptプログラマでPHPを使用したプロジェクトがあります。 PHPでJSONを操作することに問題があります。PHPで配列JSONを操作するには?

これは、私はそれぞれの名前を取得し、それらをエコーする必要が私のJSON

{ 
    "orders":[ 
    { 
    "name":"#1002" 
    }, 
    { 
    "name":"#1001" 
    } 
    ] 
} 

ですが、私は次のコード$myarray = json_decode($order, true)を試してみましたが、それは、このエラーを私に返します。

警告:json_decode()は、パラメータ1 iは、配列から文字列にJSONに変換することができますどのよう

に与えられた文字列、配列であることを期待しますか?または私はそれを間違っている。

+0

JSONをJSON.stringify(myjson)のようなJavaScriptの文字列に変換していますか? –

+0

jsonを$ order変数に保存する方法を教えてください。 –

+0

'print_r($ order);'あなたの配列をチェックし、jsonインデックスを整理し、 'json_decode'関数を更新してください。 – Naga

答えて

0

config.phpの

<?php 
$con = mysql_connect('localhost','root',''); 
mysql_select_db('db_school',$con); 
$sql = "SELECT * FROM userlogin"; 
$result = mysql_query($sql,$con); 
$data = array(); 
while ($row = mysql_fetch_array($result)) { 
    $data[] =array(
     'id'=>$row['id'], 
     'username'=>$row['username'], 
     'userpass'=>$row['userpass'], 
    ); 
} 
echo json_encode(array('data'=>$data)); 
?> 

view.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<table id="tbl" border="1"> 
     <thead><tr> 
      <th>Id</th> 
      <th>Username</th> 
      <th>Password</th> 
     </tr></thead> 
     <tbody></tbody> 
    </table> 
    <script type="text/javascript"> 
     $.ajax({ 
      url: 'config.php', 
     }).done(function(res) { 
      var res_data = JSON.parse(res),table=''; 
      $.each(res_data.data,function(index, el) { 
       console.log(el.id,' ', el.username,' ',el.userpass); 
       table+='<tr>';     
       table+='<td>'+el.id+'</td>';     
       table+='<td>'+el.username+'</td>';     
       table+='<td>'+el.userpass+'</td>';     
       table+='</tr>';     
      }); 
      $('#tbl').html(table); 
     }); 
    </script> 

デモ:

enter image description here

+0

こんにちは、私はこのメソッドを使用して多くを見てきました、あなたはこれのためのビデオチュートリアルまたはリファレンスのURLがありますか? – yok2xDuran

+0

これは私のYouTubeのシャネルです。 www.somelesson.blogspot.com https://www.youtube.com/rampukarinfo –

0

変数にjsonレスポンスを保存するだけです。そして、json_decode行う

$orders = '{ 
     "orders":[ 
     { 
      "name":"#1002" 
     }, 
     { 
      "name":"#1001" 
     } 
     ] 
}'; 
$myarray = json_decode($orders, true); 

echo '<pre>'; 
print_r($myarray); 

結果と同様の結果が得られますますprint_rを実行

Array 
(
    [orders] => Array 
     (
      [0] => Array 
       (
        [name] => #1002 
       ) 

      [1] => Array 
       (
        [name] => #1001 
       ) 

     ) 

) 

EDIT:

のみ名の値は、単に実行得るためにforeach

$result = []; 
foreach($myarray['orders'] as $value) { 
    $result[] = $value['name']; 
} 

今印刷$は、あなたが得る結果

Array 
(
    [0] => #1002 
    [1] => #1001 
) 
+0

ですが、結果は次のようになります。 #1002 #1001 と結果が似ていない – yok2xDuran

+0

私はそれを得られません。あなたは['#1002'、 '#1001']のようにしたいのですか? –

+0

Then 'foreach($ myarray as $ order){ echo $ order ['name']; } ' – user3801349