使用AJAX提交表单不会POST到数据库

时间:2014-10-02 01:20:55

标签: php jquery ajax forms

我基本上是尝试将表单提交到数据库,但由于某种原因它不会发布POST。触发成功的成功方法受到了冲击。所以,我不确定问题是什么?我在phpMyAdmin中检查了数据库以查看数据是否已提交,但这并没有成功。我试着在这个网站上看到类似的代码和jquery来寻找解决方案,但仍然失败了。任何解决方案?

HTML:

<form class="form" method="post">
<div class="col-sm-4 col-lg-4 col-md-4">
   <div class="thumbnail">
      <img src="images/011.jpg" alt="011.jpg">
      <div class="caption">
      <h4 class="pull-right">$64.99</h4>
      <input type="hidden"  name="price" value="64.99"/>
      <h4 title="Item">Second Product</h4>
      <input type="hidden" name="productName" value="product"/>
      <p>This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
      <input type="hidden" name="description" value="DESC VALUE"/>
    </div>
    <div class="userOptions text-center">
    <!-- Cart Button -->
    <button class="btn btn-primary" type="submit" id="cartButton" name="addItemToCart"><span class="glyphicon glyphicon-shopping-cart"></span>&nbsp;&nbsp;Add to Cart</button>
    </div>
  </div>
</div>
</form>

的JQuery / AJAX:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() 
{
   $(".form").on("submit",function(e)
   {
       e.preventDefault();
       $.ajax({
            type:"POST",
            url:'cartexe.php', //I will put project id here as well
            data:$(".form input").serialize(),
            success:function(smsg)
            {
                alert('success added');
            }
        });


   });
});
</script>

3 个答案:

答案 0 :(得分:2)

将addItemToCart(data:$(".form input").serialize()+"&addItemToCart=")添加到您的数据中以进行ajax调用:

$(document).ready(function() 
{
   $(".form").on("submit",function(e)
   {
       e.preventDefault();
       $.ajax({
            type:"POST",
            url:'cartexe.php', //I will put project id here as well
            data:$(".form input").serialize()+"&addItemToCart=",
            success:function(smsg)
            {
                alert('success added');
            }
        });


   });
});

答案 1 :(得分:1)

罪魁祸首似乎是这样:

data:$(".form input").serialize(),

由于您明确.form input<input>只标记,然后在您的PHP中,您正在检查if(isset($_POST['addItemToCart']))的实际存在,这实际上是button标记,是不包括并在后期数据中传输。

所以基本上没有任何反应,因为你依赖<button>标签。

因此,将按钮转换为输入类型提交:

<input type="submit" name="addItemToCart" value="Add to Cart" class="btn btn-primary" id="cartButton" />

虽然它可能与你的造型有冲突。

我可能也会建议,而不是从按钮的设置触发它而不是使用它:

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // PHP Logic
}

答案 2 :(得分:0)

我可以使用您的代码发布到cartext.php。在firebug中没有错误并且收到了ok返回消息。发布数据。你遇到什么问题?