2013-02-24 2 views
0

Этот вопрос также связан с моей предыдущей публикацииконтроллер CodeIgniter не работает при использовании Ajax

jquery ajax form submit not working with codeigniter but working otherwise

Я хочу, чтобы отправить форму без загрузки новой страницы PHP. Я использую codeigniter. Когда я запускаю контроллер с предопределенными значениями, он отлично работает и вставляет значения в базу данных. Но когда я запускаю ajax, мой контроллер не работает или не вызывается. Это мой код: -

<script language='JavaScript' type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script> 
<script> 
    $('#submit_article').click(function(){ 

     var article_title = document.getElementById("title").value; 
     var article_body = document.getElementById("body").value; 

     $.ajax({ 
      url: '<?php echo base_url()."/main/submit_article";?>', 
      type: 'POST', 
      dataType: 'json', 
      data: 'title='+article_title + '&body='+article_body, 
      success: function(output_string){ 
       $('#result_table').append(output_string); 
      } 
     }); 
    }); 
</script> 

<form name="article_form" method="POST" action=""> 
<input type="text" name="title" id="title" placeholder="Title for your article" /> 
<br> 
<textarea rows="12" name="body" id="body" placeholder="Tell your story"></textarea> 
<br> 
<input type="submit" name="submit_article" id="submit_article" value="Post" /> 
</form> 
+0

изменение base_url к site_URL, если вы не отключили, чтобы использовать index.php –

+0

не пробовал, никакого успеха –

+0

Что ошибка вы столкнулись? –

ответ

1

Попробуйте код типа этого. Изменение представить кнопку

<script language='JavaScript' type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script> 
<script> 
    $('#submit_article').click(function(){ 
     $.ajax({ 
      url: $('#article_form').attr('url'), 
      type: 'POST', 
      dataType: 'json', 
      data: $('#article_form').serialize(), 
      success: function(output_string){ 
       $('#result_table').append(output_string); 
      } 
     }); 
    }); 
</script> 

<form name="article_form" method="POST" action="<?php echo site_url('main/submit_article');?>"> 
    <input type="text" name="title" id="title" placeholder="Title for your article" /> 
    <br> 
    <textarea rows="12" name="body" id="body" placeholder="Tell your story"></textarea> 
    <br> 
    <input type="button" id="submit_article" value="Post" /> 
</form> 
+0

эй это работает, но он загружает новую страницу php. Я хочу, чтобы он отправил форму без загрузки php-страницы, поэтому я хотел использовать ajax –

+0

Ну, чем в вашем контроллере вы должны загружать представление и передавать его в div result_table, когда он отображает содержимое. Попробуйте обработать его с помощью jquery. –

1

Попробуйте это:

<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script> 
<script type="text/javascript"> 
    $('#submit_article').click(function(e){ 
     e.prevenDefault(); 
     $.post(
     '<?php echo site_url("main/submit_article");?>', 
     $('#article_form').serialize() 
     ).success(function(resp) { 
      $('#result_table').append(output_string); 
     }); 
    }); 
</script> 

<form id="article_form" method="post" action="<?php echo site_url('main/submit_article');?>"> 
    <input type="text" name="title" id="title" placeholder="Title for your article" /> 
    <br> 
    <textarea rows="12" name="body" id="body" placeholder="Tell your story"></textarea> 
    <br> 
    <input type="submit" id="submit_article" value="Post" /> 
</form> 
Смежные вопросы