2017-08-16 37 views
-2

我正在實施服裝購物網站,目前我正在加入購物車。在每個布料上都有添加到購物車按鈕,通過它將物品添加到購物車。我使用會話數組來存儲購物車中的值。當點擊添加到購物車按鈕時,我使用JavaScript警報顯示消息「商品添加到購物車」。我面臨的問題是,當我點擊添加到購物車按鈕第一次它不顯示任何消息,但它完美的第二和所有其他時間。只有第一次點擊它什麼都不顯示。Javascript警報不工作的第一個數組值在PHP

代碼:

<?php 
session_start(); 
$connect = mysqli_connect("localhost", "root", "", "login"); 
if (isset($_POST["add_to_cart"])) { 
    if (isset($_SESSION["shopping_cart"])) { 

    $item_array_id = array_column($_SESSION["shopping_cart"], "item_id"); 
    if (!in_array($_GET["id"], $item_array_id)) { 
     $count = count($_SESSION["shopping_cart"]); 
     $item_array = array(
     'item_id' => $_GET["id"], 
     'item_description' => $_POST["dress_description"], 
     'item_price' => $_POST["price"], 
     'item_quantity' => $_POST["dress_quantity"], 
     'item_gender' => $_POST["gender_name"] 
    ); 

     $_SESSION["shopping_cart"][$count] = $item_array; 
     echo '<script>alert("Item Added to Cart")</script>'; 
     echo '<script>window.location="portfolionew.php"</script>'; 
    } else { 
     echo '<script>alert("Item Already Added")</script>'; 
     echo '<script>window.location="portfolionew.php"</script>'; 
    } 
    } else { 
    $item_array = array(
     'item_id' => $_GET["id"], 
     'item_description' => $_POST["dress_description"], 
     'item_price' => $_POST["price"], 
     'item_quantity' => $_POST["dress_quantity"], 
     'item_gender' => $_POST["gender_name"] 
    ); 
    $_SESSION["shopping_cart"][0] = $item_array; 
    echo '<script>alert("Item Added to Cart")</script>'; 
    echo '<script>window.location="portfolionew.php"</script>'; 
    } 
} 
?> 


// and this is cart button: 
<input type="submit" name="add_to_cart" class="fa fa-shopping-cart" value="Cart"> 
+0

請發表您的JavaScript以及! – BCoder

+0

只是使用JavaScript警報,你可以看到我在哪裏回聲JavaScript警報 –

+0

也許會話'isset($ _ SESSION [「shopping_cart」])'沒有設置,它沒有進入'if'條件 –

回答

1

這裏的問題是對第一次你不添加代碼以提醒。從

<?php 
    session_start(); 
    $connect = mysqli_connect("localhost", "root", "", "login"); 
    if (isset($_POST["add_to_cart"])) { 
     if (isset($_SESSION["shopping_cart"])) { 

     $item_array_id = array_column($_SESSION["shopping_cart"], "item_id"); 
     if (!in_array($_GET["id"], $item_array_id)) { 
      $count = count($_SESSION["shopping_cart"]); 
      $item_array = array(
      'item_id' => $_GET["id"], 
      'item_description' => $_POST["dress_description"], 
      'item_price' => $_POST["price"], 
      'item_quantity' => $_POST["dress_quantity"], 
      'item_gender' => $_POST["gender_name"] 
     ); 

      $_SESSION["shopping_cart"][$count] = $item_array; 
      echo '<script>alert("Item Added to Cart")</script>'; 
      echo '<script>window.location="portfolionew.php"</script>'; 
     } else { 
      echo '<script>alert("Item Already Added")</script>'; 
      echo '<script>window.location="portfolionew.php"</script>'; 
     } 
     } else { 
     $item_array = array(
      'item_id' => $_GET["id"], 
      'item_description' => $_POST["dress_description"], 
      'item_price' => $_POST["price"], 
      'item_quantity' => $_POST["dress_quantity"], 
      'item_gender' => $_POST["gender_name"] 
     ); 
     $_SESSION["shopping_cart"][0] = $item_array; 
     } 
    } 
    ?> 

更改代碼

<?php 
session_start(); 
$connect = mysqli_connect("localhost", "root", "", "login"); 
if (isset($_POST["add_to_cart"])) { 
    if (isset($_SESSION["shopping_cart"])) { 

    $item_array_id = array_column($_SESSION["shopping_cart"], "item_id"); 
    if (!in_array($_GET["id"], $item_array_id)) { 
     $count = count($_SESSION["shopping_cart"]); 
     $item_array = array(
     'item_id' => $_GET["id"], 
     'item_description' => $_POST["dress_description"], 
     'item_price' => $_POST["price"], 
     'item_quantity' => $_POST["dress_quantity"], 
     'item_gender' => $_POST["gender_name"] 
    ); 

     $_SESSION["shopping_cart"][$count] = $item_array; 
     echo '<script>alert("Item Added to Cart")</script>'; 
     echo '<script>window.location="portfolionew.php"</script>'; 
    } else { 
     echo '<script>alert("Item Already Added")</script>'; 
     echo '<script>window.location="portfolionew.php"</script>'; 
    } 
    } else { 
    $item_array = array(
     'item_id' => $_GET["id"], 
     'item_description' => $_POST["dress_description"], 
     'item_price' => $_POST["price"], 
     'item_quantity' => $_POST["dress_quantity"], 
     'item_gender' => $_POST["gender_name"] 
    ); 
    $_SESSION["shopping_cart"][0] = $item_array; 

    /***************** add ********************/ 
    echo '<script>alert("Item Added to Cart")</script>'; 
    echo '<script>window.location="portfolionew.php"</script>'; 

    } 
} 
?> 
+0

是的這是你的問題的正確解決方案,它必須被標記爲接受 –

+0

我認爲這可能是一個更好的答案,如果你單獨發佈額外的代碼並解釋如何/爲什麼使用這個額外的代碼。 – Max