2016-12-15 5 views
-2

<option>を使用して製品からsizeを変更しようとしましたが、array_splice()を使用しますが、size顧客がセッションカートの配列を変更するために他のサイズを選択しても、このエラーが発生した場合はどうすればいいですか?は入力配列/既存の配列、いくつかのcart_array、既存の配列の変更方法を示します

警告:array_splice()は、 \ www \ MyOnlineStore \ cart.php on line 89

this:

array_splice($_SESSION["cart_array"], array(array("item_id" => $item_to_adjust_size, "size" => $size))); 

スクリプト

//  Section 3a (if user chooses to adjust item SIZE) 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
if (isset($_POST['item_to_adjust_size'])) { 
    // execute some code 
    echo "merge"; 
    $item_to_adjust_size = $_POST['item_to_adjust_size']; 
    $size = $_POST['size']; 
    foreach ($_SESSION["cart_array"] as $my_ArraySize) { 
       while (list($key, $value) = each($my_ArraySize)) { 
        if ($key == "item_id" && $value == $item_to_adjust_size) { 
         // That item is in cart already so let's adjust its quantity using array_splice() 
         array_splice($_SESSION["cart_array"], array(array("item_id" => $item_to_adjust_size, "size" => $size))); 
        } // close if condition 
       } // close while loop 
    } // close foreach loop 
} 

フォームチェンジサイズの配列

$myArraySize = explode(' ', $size); 
$cartOutput .= '<td><form action="cart.php" method="post"><select name="size">'; 
     foreach($myArraySize as $my_ArraySize) 
     { 
     $cartOutput .= '<option value="'.$my_ArraySize.'">'.$my_ArraySize.'</option>'; 
     } 
     $cartOutput .='</select><input name="item_to_adjust_size" type="hidden" value="' . $item_id . '" />  
     <input name="adjustBtn' . $item_id . '" type="submit" value="changesizes" />'; 

     $cartOutput .= '</form></td>'; 

のために、私は感謝をスクリプトで、私は初心者ごめんなさい、それを修正する方法を本当にいけません。

+0

期待される結果は何ですか?このエラーは、オフセットで配列を使用しようとしているためです。基本的には、実際に配列を挿入する番号を挿入するはずです。http://php.net/manual/en/function.array-splice.php –

+0

つかいます? – Stefan

+0

あなたがしようとしていることが分かっていれば、その質問に答えることができます。 –

答えて

0

正確にはです。第2引数は配列ではなく、intである必要があります。 thisを読んでください。あなたはおそらく:

array_splice(array(array("item_id" => $item_to_adjust_size, "size" => $size)),$_SESSION["cart_array"]); 

2番目の引数は、すべてが削除されるオフセットです。 1つのアイテムだけの配列(配列を含む)があるので、これもあまり意味がないので、ここで何をしようとしているのか考える必要があります。あなたもこの行のどの区域を使っても保存しません - それはまったく役に立たないです。変数に何かを保存するか、既存の配列を変更する必要があります。

あなたはしたいことがあります。

$my_ArraySize["size"] = $_SESSION["cart_array"] 

または似たような、わからないけれども。

+0

どうすればいいのでしょうか? – Stefan

+0

質問を編集して、入力配列/既存の配列、いくつかのcart_array、および既存の配列の変更方法を表示します。存在するかどうかの両方のケースを試してみてください。それから私は試して助けてくれる。 – kabanus

+0

私は、質問を編集しました – Stefan

関連する問題