【问题标题】:Issue with sending variables to AJAX ( php forms)将变量发送到 AJAX(php 表单)的问题
【发布时间】:2021-11-03 21:52:10
【问题描述】:

问候各位程序员,我整天都在努力解决这个问题,但我对 ajax 了解不多。我可以处理需要刷新的常规表单。

基本上,我有一个表单,客户可以在其中输入他们想要的数量,还有一个按钮,上面写着添加到购物车,并带有一个处理发布请求的 ajax 函数。

               <form id="qnt'.$ID'">
           <input type="hidden" value="'.$price.'" name="price">
           <input type="text" placeholder="Enter Quantity in Kilo" name="qty" required>
           <button class="btn btn-danger" type="button" onclick= add('.$ID.') class="filled-button" class="add2cart">Add To Cart</button></h6>
           </form>

这是 ajax 请求:

      <script type="text/javascript">
     function add(id){
       qnt = $('#qnt'+id).serialize();
       $('#qnt'+id).trigger("reset");
       $.ajax({
         url:'add2cart.php',
         method:'POST',
         data:{
         'id': id,
         'qnt': qnt

         },
         success:function(data){
           console.log(data);
         }
       });
     }
  </script>

现在这完全没问题(朋友帮我做的),现在我想在表单中添加另一个变量:

               <form id="qnt'.$ID'">
           <input type="hidden" value="'.$newPrice.'" name="newPrice">
           <input type="text" placeholder="Enter Quantity in Kilo" name="qty" required>
           <button class="btn btn-danger" type="button" onclick= add('.$ID.') class="filled-button" class="add2cart">Add To Cart</button></h6>
           </form>

如何使用 ajax 脚本传递新的隐藏输入?谢谢。

【问题讨论】:

  • 在 ajax 函数中的 data 参数中添加一个新参数 - 这表示您这样做是不明智的,因为可以轻松修改输入到浏览器中的任何内容。
  • 我尝试添加一个新的(语法 100% 正确),但它导致按钮停止工作 newPrice : price
  • 您实际上不需要在 ajax 函数中发送价格 - 只需发送产品 ID 和数量即可。 PHP 脚本将进行数据库查找以查找价格(这样价格就是您设置的价格,而不是有人可能更改的价格) - 然后可以将详细信息存储在 cart
  • 我制作了一个智能销售系统,它分析用户静态并根据可用的内容为他们提供销售,当有销售给某些客户时,我希望 ajax 通过添加到购物车和不去数据库查原价,这样我就不能得到售后的价格。
  • 您还希望在表单中添加什么其他变量,这个变量来自哪里?是用户输入的吗?

标签: php ajax forms


【解决方案1】:

您可以将 id 放在表单中的隐藏输入中,然后序列化将在其中包含 id

   <form id="qnt'.$ID'">
       <input type="hidden" value="'.$ID.'" name="id">
       <input type="hidden" value="'.$newPrice.'" name="newPrice">
       <input type="text" placeholder="Enter Quantity in Kilo" name="qty" required>
       <button class="btn btn-danger" type="button" onclick= add('.$ID.') class="filled-button" class="add2cart">Add To Cart</button></h6>
   </form>


 function add(id){
   qnt = $('#qnt'+id).serialize();
   $('#qnt'+id).trigger("reset");
   $.ajax({
     url:'add2cart.php',
     method:'POST',
     data: qnt,
     success:function(data){
       console.log(data);
     }
   });
 }

【讨论】:

  • 我不认为你明白我想要什么,这与“ID”无关,这只是关于 newPrice。
猜你喜欢
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多