通过ajax在代码点火器中提交表单

时间:2013-01-03 09:04:38

标签: php jquery ajax codeigniter

我想通过ajax提交表单,但我知道为什么表单不通过ajax提交。为什么ajax没有选择提交ID ..这个代码只是像往常一样提交而不是通过ajax 帮助我,我错了..

  

 echo form_open('Contact_Controller/submit');
 echo form_input('name', set_value('name'), 'id="name"');
 echo form_input('email', set_value('email'), 'id="email"');
 $data = array(
        'name'=> 'message',
        'id' => 'message',
        'cols'=> '35',
        'rows' => '12'

        );
 echo form_textarea($data, 'Message');
 echo form_submit('submit', 'Submit', 'id="submit"');
 ?>

<script type = "text/javascript">
$('#submit').click(function(){

var form_data = {
        name: $('#name').val(),
        email: $('#email').val(),
        message: $('#message').val()
};

$.ajax({
    url: "<?php echo site_url('tuts_Contact_Controller/submit'); ?>",
    type: 'POST',
    data: form_data,
    success: function(msg) {
      alert(msg);
    }

});

</script>

2 个答案:

答案 0 :(得分:6)

使用这种方式:

我猜你在这个脚本上面有jquery。

<script type = "text/javascript">
$(function(){       // <----------------missed the doc ready function
  $('form').submit(function(e){
    e.preventDefault(); // <------this will restrict the page refresh
    var form_data = {
        name: $('#name').val(),
        email: $('#email').val(),
        message: $('#message').val()
    };

    $.ajax({
        url: "<?php echo site_url('tuts_Contact_Controller/submit'); ?>",
        type: 'POST',
        data: form_data, // $(this).serialize(); you can use this too
        success: function(msg) {
              alert(msg);
        }

   });
 });
});
</script>

答案 1 :(得分:1)

您应该阻止表单提交的默认事件:

$('#submit').click(function(evt){
  evt.preventDefault();
  ....