我正在对表格的结果进行json_encode
方法。
当我对此变量执行var_dump
时。我有三个对象。
{"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']);
我多次获得相同的对象,但只有一个对象。我如何得到它们?
答案 0 :(得分:1)
这不是有效的json。 json字符串必须求值为SINGLE实体。数组,对象,字符串,int。你那里有3个独立的物体。为了使其更加有效,它看起来更像是:
[ {"id" : 5}, {"id": 6}, {"id" : 7} ]
e.g。一组对象。
答案 1 :(得分: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
中