2016-09-27 71 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作为下拉菜单中所选产品的代码,而不是通过操作方法。 尽管感谢您的回复,但我没有发布我的所有代码,因为这部分内容太多了。