Javascript PHP中对象数组的循环

Javascript PHP中对象数组的循环,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我正在jQuery中创建一个对象数组 var selected_tests = $("#selected_tests").find("tr"); jsonLab = []; $.each(selected_tests, function() { jsonLab.push({ test: ($(this).children()).eq(0).text(), amount: ($(this).children()).eq(1).text() }); }); 我正在将这个数组

我正在jQuery中创建一个对象数组

var selected_tests = $("#selected_tests").find("tr");
jsonLab = [];
$.each(selected_tests, function() {
  jsonLab.push({
    test: ($(this).children()).eq(0).text(),
    amount: ($(this).children()).eq(1).text()
  });
});
我正在将这个数组发布到一个PHP文件中

$('<input type="hidden" name="jsonLab"/>').val(jsonLab).appendTo('#bill_print');
$("#bill_print").submit(); 
$('').val(jsonLab).appendTo('bill_print');
$(“#账单打印”).submit();
在我的PHP文件中

if(isset($_POST['jsonLab']))
{
  $lab = json_decode($_POST['jsonLab'],true);
  foreach ($lab as $key => $value) {
    echo $value["test"] . ", " . $value["amount"] . "<br>";
  }   
}
if(isset($\u POST['jsonLab']))
{
$lab=json_decode($_POST['jsonLab'],true);
foreach($labas$key=>$value){
echo$value[“test”]。,“$value[“amount”]。”
”; } }

我使用的
foreach
的方式似乎有一些错误,或者可能是格式不正确的JSON没有被PHP解码。我不想使用AJAX进行提交。

问题在于此调用:

.val(jsonLab)
jsonLab
是一个保存在JS中的对象数组。因此,将其设置为jQuery对象的
val()
,将意味着对其调用
toString()
。结果是
[object object]
。这是发送到PHP逻辑的内容,因此会出现错误

要解决此问题,需要在将JSON设置为文本字段的值时手动将其字符串化:

$('<input type="hidden" name="jsonLab" />').val(JSON.stringify(jsonLab)).appendTo('#bill_print');

您是否做过任何日志记录以查看什么是
$\u POST['jsonLab']
或您的
$value
是什么?
print\r($\u POST)
在将数组设置为隐藏字段之前,请尝试
stringify
ing您的数组。@TiiJ7,stringify完成了任务,谢谢Hanks mate,JSON。stringify解决了它,我也会接受您的地图建议。没问题,乐意帮助。
var jsonLab = $("#selected_tests tr").map(function() {
  return {
    test: $(this).children().eq(0).text(),
    amount: $(this).children().eq(1).text()
  };
}).get();