2012-10-27 130 views
0

jquery的新功能。我怎样才能有一个简单的形式与保存按钮和保存退出按钮?Jquery ajax保存按钮和保存退出按钮

我现在拥有的某种方式“有效”。但是当我发布然后点击保存退出。然后回到/消息。使用表格并点击保存 - 退出它的帖子并保持在页面上。但是如果我重复一遍,它会发布并退出。

JQUERY

var BASE = 'http://localhost/sym/messages'; 

$('#xhrSave').submit(function() { 

    event.preventDefault(); 

    $('[name="save_continue"]').click(function() { 
     window.location = '#'; 
    }); 

    $('[name="save_exit"]').click(function() { 
     window.location = BASE; 
    }); 

    var url = $(this).attr('action'); 
    var data = $(this).serialize(); 

    $.ajax({ 
     type: 'post', 
     url: url, 
     dataType: 'json', 
     data: data, 
     success: function(data) { 

      $('#message_list').append('<div>' + data.message + '<a class="delete" rel="'+ data.id +'" href="#">Delete</a></div>'); 

     } 

    }); 

    // clear textbox 
    $('#form_message').val(''); 

}); 

HTML

<form action="<?=URL::to('messages/xhrSave')?>" method="post" id="xhrSave"> 

<input type="text" name="message" value="" id="form_message" /> 

<button type="submit" name="save_continue" class="save_form">Save</button> 
<button type="submit" name="save_exit" class="save_form">Save-Exit</button> 

+0

所以,当我们点击save_continue你想通过ajax发送数据? – kritya

+0

是的,该部分确实按照代码的方式工作,但可能不是最好的方式。 – dynamo

回答

1

有很多做这件事情的方式,没有任何可以说是最好的,只是把我在用什么样的方式一般。

你的HTML改成这样:

<input type="text" name="message" value="" id="form_message" /> 

<button type="submit" name="save_continue" class="save_continue save_form">Save</button> 
<button type="submit" name="save_exit" class="save_exit save_form">Save-Exit</button> 

和JS:

function myajaxcall(type){ 
        var url = $(this).attr('action'); 
     var data = $(this).serialize(); 

     $.ajax({ 
      type: 'post', 
      url: url, 
      dataType: 'json', 
      data: data, 
      success: function(data) { 

       $('#message_list').append('<div>' + data.message + '<a class="delete" rel="'+ data.id +'" href="#">Delete</a></div>'); 
       //one way to redirect 
       if(type=="exit") 
       window.location = "thepageyouwanttogo.php" 

      } 

     }); 
} 
$('.save_continue').click(function() { 
     myajaxcall("continue") 
}); 
$('.save_exit').click(function() { 
     myajaxcall("exit") 
}); 

注:我没有检查你的JS在AJAX只是复制它的问题

+0

不知道这是你想要的。纠正我,如果我错了 – kritya

+0

我想这两个按钮发布到数据库,只有一个停留在同一页面上,另一个退出到另一页 – dynamo

+0

检查我的编辑。更改thepageyouwanttogo.php – kritya