Cakephp:如何在两个动作上发布数据

时间:2014-08-04 06:54:40

标签: ajax cakephp

我正在通过表单尝试post data

我需要在其他网站上提交表单,并且还必须将数据保存在我的数据库中。我尽我所能,但没有找到解决方案。

这是我的表单

<form class="formaction" action="http:www.demo.com" method="post">
   <input type="text" value="1" name="quantity" class="form-style pull-left">
   <input type="hidden" name="stock" value="1100">
   <input type="submit" value="Add" style="display: block;" class="button-style">
</form>

案例I

在这种情况下,表单会提交给www.demo.com,但会导致错误mystagingserver/addtotrolley

Ajax功能

 $('.formaction').submit(function() {
    $.ajax({
        type: 'POST',
        url: 'mystagingserver/addtotrolley',
        data: { 
               quantity: $( "input[name$='quantity']" ).val(), 
               stockcode: $( "input[name$='stockcode']" ).val()
              }
    });
}); 

案例II

在这种情况下,表单未提交给www.demo.com,但ajax正常运行,并且我将数据从mystagingserver/addtotrolley保存到数据库

$('.formaction').submit(function() {
    $.ajax({
        type: 'POST',
        url: 'mystagingserver/addtotrolley',
        data: {
               quantity: $( "input[name$='quantity']" ).val(), 
               stockcode: $( "input[name$='stockcode']" ).val()
              }
    });
    return false;
}); 

1 个答案:

答案 0 :(得分:1)

从案例I中我收集到的是,当用户单击“提交”时,它会进行ajax调用。并立即尝试将表单提交至www.demo.com。这意味着您正在离开页面并可能失去连接。你准确得到了什么错误信息?

最好的方法是对登台服务器进行AJAX调用。如果成功,则只进行常规表单提交或向第三方域发出另一个AJAX发布请求。

下面的内容是理想的:

$('.formaction').submit(function() {
    $.ajax({
        type: 'POST',
        url: 'mystagingserver/addtotrolley',
        data: {
               quantity: $( "input[name$='quantity']" ).val(), 
               stockcode: $( "input[name$='stockcode']" ).val()
              },
        success: function(resp) {
            $.ajax({
                type: 'POST',
                url: 'http:www.demo.com',
                data: {
                       quantity: $( "input[name$='quantity']" ).val(), 
                       stockcode: $( "input[name$='stockcode']" ).val()
                      },
                success: function(resp) {
                    alert("Successfully submitted to both!");
                }
            });
        }
    });
    return false;
});