2016-09-27 80 views
1

我目前是一名學生,並在過去幾週一直在涉足php。我將首先嚐試用簡單的英語解釋我的問題,然後提供一些代碼以顯示問題的複雜性。php在表單提交動作值設置爲空,直到第二個表單提交然後設置爲值

我正在處理產品訂購屏幕,用戶首先從數據庫填充的下拉列表中選擇產品類別。

選擇產品類別下拉列表後,使用ajax查詢從數據庫填充產品名稱下拉列表。

的index.php

$(".Product_Category").change(function() 
{ 
    var id=$(this).val(); 
    var dataString = 'id='+ id; 

    $.ajax({ 
    type: "POST", 
    url: "ajax_product.php", 
    data: dataString, 
    cache: false, 
    success: function(html) { 
     $(".Product_Name").html(html); 
    } 
    }); 
}); 

的ajax_product腳本基本上接收選擇的類別的ID,然後用得到它從數據庫相關聯的產品,然後返回產品名稱的成功:功能index.php中的ajax語句就是這樣。

ajax_product

echo '<option value="'.$id.'">'.$data.'</option>'; 

一旦用戶從下拉選擇了商品和提交按鈕點擊表單提交下面的操作:

<form method="post" class="form-horizontal " action="Place_Order_3.php?action=add&code=<?php echo($Prod_Name_Succ)?>">

$ Prod_Name _Succ變量設置爲在下拉列表中選擇的產品ID。 $ Prod_Name_Succ = $ _ POST [ 'PRODUCT_NAME']。

現在,這裏是我的問題,最後。 據我瞭解,這裏有一個因果關係問題,因爲當我第一次提交表單時,即使我從下拉列表中選擇了一個產品,操作代碼也設置爲「」。在第二個表單提交時,變量$ Prod_Name_Succ現在被設置爲在下拉列表中選擇的產品ID,現在我可以將該產品添加到購物車。

因此,在我看來,表單不能將$ Prod_Name_Succ代碼添加到操作,直到它已經通過表單提交功能,即。 if(!empty($_GET["action"]) { },所以我永遠不會在第一次提交表單時添加產品。

我曾嘗試使用$_Session來存儲該id並將其設置爲無,但同樣的問題似乎仍然適用。

+1

請提供表格HTML – Derek

+0

輸入數據在哪裏? –

回答

0

我昨天解決了這個問題,所以沒有必要。基本上我只是繞過了操作代碼,只是使用$ _POST作爲下拉菜單中所選產品的代碼,而不是通過操作方法。 儘管感謝您的回覆,但我沒有發佈我的所有代碼,因爲這部分內容太多了。