我正在尝试使用 jQuery post 传递一个对象。它通过了,但是 php 代码出了点问题:
} elseif($_GET['action'] == "insertQty") {
$obj = json_decode($_POST['param']);
$scArr = $obj->{'data'};
$od_id = $obj->{'id'};
for($i = 0; $i < count($scArr); $i++){
$pd_id = substr($scArr[$i], 5);
$pQty = $obj->{$scArr[$i]};
$stmt = $DBH->prepare("INSERT INTO tbl_order_item_test (od_id, pd_id, od_qty) VALUES (:oId, :pId, :pQty)");
$stmt->bindParam(':oId', $od_id);
$stmt->bindParam(':pId', $pd_id);
$stmt->bindParam(':pQty', $pQty);
$stmt->execute();
}
}
$scArr[$i]
= "prod_#" 其中 # 是某个数字。因此substr(5) = #
。
对象:
var array = getArray();
var itemsObj = {};
itemsObj['data'] = shoppingCart;
itemsObj['id'] = data;
//for-loop here to dynamically insert data to the obj.
$.post(url, "param=" + JSON.stringify(itemsObj), "html");
什么不能正常工作?这很可能是第一段代码的问题,因为对象在使用alert()
.
编辑:
print_r($obj)
:
stdClass Object
(
[data] => Array
(
[0] => prod_2
)
[id] => 1024
[prod_2] => 8
)
你几乎可以$scArr
从上面猜到输出......基本上所有与对象相关的东西都很好。