【问题标题】:php On form submission action value set to nothing until second form submission then sets to valuephp 在表单提交操作值设置为空,直到第二次表单提交然后设置为值
【发布时间】: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>';

一旦用户从下拉列表中选择产品并点击提交按钮,表单将提交以下操作:

表格

&lt;form method="post" class="form-horizontal " action="Place_Order_3.php?action=add&amp;code=&lt;?php echo($Prod_Name_Succ)?&gt;"&gt;

$Prod_Name_Succ 变量设置为下拉列表中选择的产品 ID,即。 $Prod_Name_Succ=$_POST['Product_Name']。

现在我的问题终于来了。 据我了解,这里存在因果关系问题,因为当我第一次提交表单时,即使我从下拉列表中选择了产品,操作代码也设置为“”。在第二个表单提交变量 $Prod_Name_Succ 现在设置为下拉列表中选择的产品 ID,我现在可以将该产品添加到购物车中。

所以在我看来,表单无法将 $Prod_Name_Succ 代码添加到操作中,直到它通过表单提交功能,即。 if(!empty($_GET["action"]) { } 所以我永远无法在第一次提交表单时添加产品。

我尝试使用$_Session 来存储 id 并再次将其设置为空,但同样的问题似乎仍然适用。

【问题讨论】:

  • 请提供表单 HTML
  • 输入数据在哪里?

标签: php ajax forms action


【解决方案1】:

我昨天解决了这个问题,所以没有必要。基本上我只是绕过了操作代码,只是使用 $_POST 作为在下拉列表中选择的产品的代码,但根本没有通过操作方法。 不过感谢您的回复,我没有发布我在本节的所有代码,因为代码太多了。

【讨论】:

    猜你喜欢
    • 2020-12-06
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多