2016-09-21 5 views
-2

私はリロードするためにウィンドウの場所のセットと "カートに入れる"ボタンを作成しました。しかし、私がクリックすると、無限にリロードし続けるか、決して停止しません。私はまだそれをリロードする必要があるので、私はさらに多くのアイテムを参照して自分のカートに追加することができます。どうすれば同じページに設定できますか?ウィンドウ位置リロード無限のPHP

<?php 
session_start(); 
$connect = mysqli_connect("localhost", "root", "", "tut"); 

if (isset($_POST["add"])) { 
    if (isset($_SESSION["cart"])) { 
     $item_array_id = array_column($_SESSION["cart"], "product_id"); 
     if (!in_array($_GET["id"], $item_array_id)) { 
      $count = count($_SESSION["cart"]); 
      $item_array = array(
       'product_id' => $_GET["id"], 
       'item_name' => $_POST["hidden_name"], 
       'product_price' => $_POST["hidden_price"], 
       'item_quantity' => $_POST["quantity"] 
      ); 
      $_SESSION["cart"][$count] = $item_array; 
      echo '<script>window.location.reload()</script>'; 
     } 
     else { 
      echo '<script>alert("Products already added to cart")</script>'; 
      echo '<script>window.location.reload()</script>'; 
     } 
    } 
    else { 
     $item_array = array(
      'product_id' => $_GET["id"], 
      'item_name' => $_POST["hidden_name"], 
      'product_price' => $_POST["hidden_price"], 
      'item_quantity' => $_POST["quantity"] 
     ); 
     $_SESSION["cart"][0] = $item_array; 
    } 
} 

if (isset($_GET["action"])) { 
    if ($_GET["action"] == "delete") { 
     foreach($_SESSION["cart"] as $keys => $values) { 
      if ($values["product_id"] == $_GET["id"]) { 
       unset($_SESSION["cart"][$keys]); 
       echo '<script>alert("Product has been removed")</script>'; 
       echo '<script>window.location.reload()</script>'; 
      } 
     } 
    } 
} 
+2

の周りに、以下の作業を使用してみてください、それは非常に読みにくいです。 – jeroen

答えて

0

window.location.reload()を使用してページをリロードすると、確実にデータが再度ポストされます。

ので、あなたはあなたのコードをインデントする必要があり

$currentpage_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
echo '<script>window.location.href="'.$currentpage_url.'";</script>'; 
+0

コードをコピーしますが、動作していません(「オブジェクトが見つかりません」)。 –

関連する問題