2014-10-02 135 views
1

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

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> 
+1

'cartexe.php'里有什么? – 2014-10-02 01:23:19

+0

inside cartexe.php是将信息发布到数据的代码。我使用action =“cartexe.php”来验证代码是否正常工作并成功发布。它只有在尝试通过ajax提交时才起作用 – TheAmazingKnight 2014-10-02 01:26:01

+1

你是什么意思它不会发布? PHP代码在哪里? – Ghost 2014-10-02 01:32:09

回答

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'); 
      } 
     }); 


    }); 
}); 
+0

DANG !!感谢和这是它!!!!! – TheAmazingKnight 2014-10-02 02:05:41

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 
} 
+0

这对我来说很有意义。任何关于如何纠正它的技巧? – TheAmazingKnight 2014-10-02 01:55:06

+0

@TheAmazingKnight你可以改变按钮,检查我的修订 – Ghost 2014-10-02 01:57:31

+0

做到了这一点,仍然没有改变。 – TheAmazingKnight 2014-10-02 01:59:31

0

我能够使用您的代码发布到cartext.php。在萤火虫没有错误,并收到一个确定的返回消息。发布数据存在。你遇到什么问题?