【发布时间】:2016-09-27 21:37:49
【问题描述】:
我目前是一名学生,过去几周一直在涉足 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,然后从数据库中获取与之关联的产品,然后将产品名称返回给success: 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
-
输入数据在哪里?