0

json_encodeテーブルの結果に対してメソッドを実行しています。

var_dumpこの変数を実行すると。3 つのオブジェクトを取得します。

{"id": "5"}
{"id": "6"}
{"id": "7"}

これが私のプロセスです。onclick メソッドを使用した画像があります。

<input type='image' onclick='download(".$z.")'>

開発者ツールでボタンがどのように見えるかを次に示します。

<input type="image" src="image.jpg" onclick=download({"id":"13","itemName":"","itemDesc":"","imageURL":"","language":"English (US)","category":"Presentation","size":"1970 KB","flagDesc":"","fileType":"PPTX"})">

これが私が使用している方法です。メソッドがすべてのオブジェクトを取得しません。最後のオブジェクトのみをピックアップします。なんで?

        function download(z)
    {
        $.ajax({
            type: 'POST',
            url:'download.php',
            data: { image: JSON.stringify(z) },
            success:function(results){
                $('div').html(results);
            }
        });
    }

私のdownload.phpファイルで、私はjson_decode($_POST['image']);

同じオブジェクトを何度も取得しますが、オブジェクトは 1 つだけです。それらをすべて入手するにはどうすればよいですか?

4

2 に答える 2

1

それは有効なjsonではありません。JSON 文字列は SINGLE エンティティに評価される必要があります。配列、オブジェクト、文字列、int。そこには 3 つの個別のオブジェクトがあります。それをリモートでも有効にするには、次のようになります。

[ {"id" : 5}, {"id": 6}, {"id" : 7} ]

たとえば、オブジェクトの配列。

于 2012-11-16T15:14:07.163 に答える
0

この自己完結型の例は、私にとってはうまく機能します。

<?php if ( empty($_POST) ) {
$z = json_encode(array(
    array('id'=>5),
    array('id'=>6),
    array('id'=>7)
));
?>
<html>
    <head>
        <title>...</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">

            function download(z)
            {
                $.ajax({
                    type: 'POST',
                    url:'?',
                    data: { image: JSON.stringify(z) },
                    success:function(results){
                        $('div').html(results);
                    }
                });
            }
    </script>
    </head>
    <body>
        <input type='image' onclick='download(<?php echo $z; ?>)' />
        <div></div>
    </body>
</html>
<?php
}
else if (!isset($_POST['image'])) {
    die('missing parameter');
}
else {
    $imgs = json_decode($_POST['image'], true);
    echo '<pre>', htmlspecialchars(var_export($imgs, true), ENT_COMPAT, 'utf-8'), '</pre>';
}

「画像」ボタンをクリックした後

array (
  0 => 
  array (
    'id' => 5,
  ),
  1 => 
  array (
    'id' => 6,
  ),
  2 => 
  array (
    'id' => 7,
  ),
)

output-div に表示されます

于 2012-11-16T15:17:37.653 に答える