我目前是一名学生,过去几周一直在使用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语句的success:function函数。
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 [&#39; PRODUCT_NAME&#39]。
最后,我的问题就在于此。 据我所知,这里存在因果关系问题,因为当我第一次提交表单时,操作代码设置为&#34;&#34;即使我从下拉列表中选择了一个产品。在第二个表单提交变量$ Prod_Name_Succ现在设置为在下拉列表中选择的产品ID,我现在可以将该产品添加到购物车。
所以在我看来,表单不能将$ Prod_Name_Succ代码添加到操作中,直到它通过表单提交功能,即。 if(!empty($_GET["action"]) { }
所以我永远不能在第一次提交表单时添加产品。
我尝试使用$_Session
来存储ID并将其再次设置为空,但同样的问题似乎仍然适用。
答案 0 :(得分:0)
我昨天解决了这个问题,所以没有必要。基本上我只是绕过了动作代码,只是使用$ _POST作为下拉列表中所选产品的代码,而不是通过动作方法。 谢谢你的回复,我不会发布我的所有代码,因为这里的内容太多了。