php在表单提交操作值设置为空,直到第二个表单提交然后设置为值

时间:2016-09-27 21:37:49

标签: php ajax forms action

我目前是一名学生,过去几周一直在使用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并将其再次设置为空,但同样的问题似乎仍然适用。

1 个答案:

答案 0 :(得分:0)

我昨天解决了这个问题,所以没有必要。基本上我只是绕过了动作代码,只是使用$ _POST作为下拉列表中所选产品的代码,而不是通过动作方法。 谢谢你的回复,我不会发布我的所有代码,因为这里的内容太多了。