我目前是一名学生,并在过去几周一直在涉足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并将其设置为无,但同样的问题似乎仍然适用。
请提供表格HTML – Derek
输入数据在哪里? –