0

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ます...基本的に、オブジェクト関連はすべて問題ありません。

4

0 に答える 0