2014-03-28 63 views
0

我想將日期下拉框中選擇的值保存到變量'$ AvailabilityID'中,該變量在下一頁中檢索。下拉框從MYSQL表bs_availability填充。從我讀過的,我需要使用Javascript,但真的不知道如何去做。從下拉列表中保存一個值到一個變量PHP

任何幫助表示讚賞。

<?php 
    //current URL of the Page. cart_update.php redirects back to this URL 
    $current_url = base64_encode("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 

     $results = $mysqli->query("SELECT SessionType, SessionName, SessionCost, SessionID FROM bs_session 
    GROUP BY SessionName ORDER BY SessionType ASC;"); 
     if ($results) { 
      //output results from database 
      while($obj = $results->fetch_object()) 
      { 
       $availabilityresults = $mysqli->query("SELECT * From bs_availability WHERE sessionID = ".$obj->SessionID.";"); 

       echo '<tr>'; 
       echo '<form method="post" action="cart_update.php">'; 
       echo '<td>'.$obj->SessionName.'</td>'; 
       echo '<td>'.$obj->SessionType.'</td>'; 
       echo '<td><select name="date">'; 
       //While loop to populate drop down with table data 
       while($objdate = $availabilityresults->fetch_object()) 
       { 
        echo '<option value ="'.$objdate->AvailabilityID.'">'.$objdate->Date.'</option>'; 
       } 
       echo '</select>'; 
       echo '</td>'; 
       echo '<td>Price '.$currency.$obj->SessionCost.' <button class="add_to_cart">Add To Cart</button></td>'; 
       echo '</tr>'; 
       echo '<input type="hidden" name="SessionID" value="'.$obj->SessionID.'" />'; 
       echo '<input type="hidden" name="AvailabilityID" value="'.$objdate->AvailabilityID.'" />'; 
       echo '<input type="hidden" name="type" value="add" />'; 
       echo '<input type="hidden" name="return_url" value="'.$current_url.'" />'; 
       echo '</form>'; 
       echo '</div>'; 
      } 

    } 
    ?> 

編輯:此代碼是cart_update.php。因此,當按下「添加到籃子」時,此腳本使用選定項目中的$ SessionID運行,但我還需要選定日期的AvailabiltyID,以便我可以運行正確的查詢以將正確的日期添加到籃子。

<?php 
session_start(); //start session 
include_once("config.php"); //include config file 

//empty cart by distroying current session 
if(isset($_GET["emptycart"]) && $_GET["emptycart"]==1) 
{ 
    $return_url = base64_decode($_GET["return_url"]); //return url 
    session_destroy(); 
    header('Location:'.$return_url); 
} 

//add item in shopping cart 
if(isset($_POST["type"]) && $_POST["type"]=='add') 
{ 
    $SessionID = filter_var($_POST["SessionID"], FILTER_SANITIZE_STRING); //product code 
    $AvailabilityID = filter_var($_POST["AvailabilityID"], FILTER_SANITIZE_STRING); //product code 
    $product_qty = filter_var($_POST["product_qty"], FILTER_SANITIZE_NUMBER_INT); //product code 
    $return_url  = base64_decode($_POST["return_url"]); //return url 

    //limit quantity for single product 
    if($product_qty > 10){ 
     die('<div align="center">This demo does not allowed more than 10 quantity!<br /><a href="http://sanwebe.com/assets/paypal-shopping-cart-integration/">Back To Products</a>.</div>'); 
    } 
    console.log($availabilityID); 
    //MySqli query - get details of item from db using product code  
    $results = $mysqli->query("SELECT SessionName, SessionCost FROM bs_session WHERE SessionID=$SessionID LIMIT 1"); 
    //$results = $mysqli->query("SELECT bs_session.SessionName, bs_availability.Date, bs_session.SessionCost FROM bs_availability INNER JOIN bs_session ON bs_session.SessionID=bs_availability.SessionID WHERE bs_availability.AvailabilityID=$AvailabilityID LIMIT 1"); 
    $obj = $results->fetch_object(); 

    if ($results) { //we have the product info 

     //prepare array for the session variable 
     $new_product = array(array('name'=>$obj->SessionName, 'code'=>$SessionID, 'date'=>$obj->Date, 'price'=>$obj->SessionCost)); 

     if(isset($_SESSION["products"])) //if we have the session 
     { 
      $found = false; //set found item to false 

      foreach ($_SESSION["products"] as $cart_itm) //loop through session array 
      { 
       if($cart_itm["code"] == $SessionID){ //the item exist in array 

        $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'date'=>$cart_itm["date"], 'price'=>$cart_itm["price"]); 
        $found = true; 
       }else{ 
        //item doesn't exist in the list, just retrive old info and prepare array for session var 
        $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'date'=>$cart_itm["date"], 'price'=>$cart_itm["price"]); 
       } 
      } 

      if($found == false) //we didn't find item in array 
      { 
       //add new user item in array 
       $_SESSION["products"] = array_merge($product, $new_product); 
      }else{ 
       //found user item in array list, and increased the quantity 
       $_SESSION["products"] = $product; 
      } 

     }else{ 
      //create a new session var if does not exist 
      $_SESSION["products"] = $new_product; 
     } 

    } 

    //redirect back to original page 
    header('Location:'.$return_url); 
} 

//remove item from shopping cart 
if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"])) 
{ 
    $SessionID = $_GET["removep"]; //get the product code to remove 
    $return_url  = base64_decode($_GET["return_url"]); //get return url 


    foreach ($_SESSION["products"] as $cart_itm) //loop through session array var 
    { 
     if($cart_itm["code"]!=$SessionID){ //item does,t exist in the list 
      $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]); 
     } 

     //create a new product list for cart 
     $_SESSION["products"] = $product; 
    } 

    //redirect back to original page 
    header('Location:'.$return_url); 
} 
+0

我們需要更多的信息。當用戶保存表單時,你想保存嗎?如果是這樣,那麼這很簡單,不需要JavaScript。 –

+0

如果下拉列表是表單的一部分,當表單被提交時,它將在您給出下拉元素的名稱下的'$ _POST'數組中可用。 –

+0

如何提交此表單?您可能需要添加類型爲提交的。然後'$ _POST ['date']'應該包含所選的條目。 –

回答

0

在PHP中,這是通過POST數組您cart_update.php頁面上完成:

if (isset($_POST['date'])){ 
    $AvailabilityID = $_POST['date']; 
} 

你也可以改變現有添加到購物車按鈕,給它會出現在一個名字POST陣列:

echo '<td>Price '.$currency.$obj->SessionCost.' <button class="add_to_cart" name="add_to_cart">Add To Cart</button></td>'; 

這通常用作檢查處理頁面,並在所有處理代碼周圍包含一個if塊。

if (isset($_POST['add_to_cart'])){ 

    //all processing code here 

} 
+0

意識到我構建錯了,你的解決方案現在工作得很好。非常歡呼 – Strawb23

-1

只需使用包含所選選項值的POST變量$_POST['date']

相關問題