2011-07-24 62 views
1

我一直在试图弄清楚这一点,但它似乎比我第一次想到的更难。然而,我想要做的是做一个Ajax发布请求,但POST发送时似乎是空的。jQuery与Codeigniter AJAX发布问题

我的HTML文件

<div id="statusUpdate"> 
     <?php echo form_open(base_url() . 'profile/statusUpdate', array('id' => 'statusUpdateForm', 'name' => 'statusUpdateForm')); ?> 
      <input type="text" value="Hva tenker du på?" name="profileUpdate" id="profileUpdate" onfocus="if(this.value == 'Hva tenker du på?')this.value=''" onblur="if(this.value == '')this.value='Hva tenker du på?'" /> 
      <input type="submit" value="" name="profileUpdateButton" id="profileUpdateButton" /> 
     <?php echo form_close(); ?> 
    </div> 

我的JavaScript

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

     $.ajax({ // Starter Ajax Call 

      method: "POST", 
      url: baseurl + 'profile/statusUpdate', 
      data: $('#statusUpdateForm').serialize(), 
      success: function(data) { 
       alert(data); 
      } 

     }); 

     return false; 

    }); 

我的PHP(我的一些在控制器medhod的)

// Check if the input is a ajax request 
    if($this->input->is_ajax_request()) { 
     echo $_POST['profileUpdate']; 
    } 

注意,当我在控制器中放置回声“Hello World”等时,我会在javascript的警报框中获得“Hello World”。

我也试过在$ _ POST一个的var_dump并返回阵列(0){}当我试图输出特定的$ _ POST [“profileUpdate”]变量我得到这个样子,

错误

enter image description here

我也做从seralize功能我JS一个警告,这是我得到了什么,

enter image description here

是否有任何人谁知道我可以解决THI问题?

+0

检查HTTP头,实际上是发送了什么到你的脚本? –

+0

检查的最佳方法是什么? – Dexty

+0

您可以使用Firebug或其他插件查看它们,例如Live HTTP Headers –

回答

2

尝试更改methodtype

我猜脚本正在执行GET请求,这是使用ajax()而不是POST请求时的默认设置。就像这样:

$.ajax({ // Starter Ajax Call 

     // "method" isn't an option of $.ajax 
     // method: "POST", 
     type: "POST", 

     url: baseurl + 'profile/statusUpdate', 
     data: $('#statusUpdateForm').serialize(), 
     success: function(data) { 
      alert(data); 
     } 

    }); 
+0

您的意思是输入:“GET”? – Dexty

+2

不,因为那样您将执行GET请求,但您想要执行POST请求。 我的意思是你使用了方法:“POST”,但这不是$ .ajax的选项。正确的选项是键入,因此键入:“POST” –

+0

@韦斯利默奇:谢谢澄清我的文章:) –

0

尝试下面的代码

在视图中添加下列表格

<?php echo form_open('welcome/CreateStudentsAjax'); ?> 

    <label for="roll">Student Roll Number</label> 
    <input type="text" id="txtRoll" value="" name="roll"/> 

    <label for="Name">Students Name</label> 
    <input type="text" id="txtName" value="" name="name"/> 

    <label for="Phone">Phone Number</label> 
    <input type="text" id="txtPhone" value="" name="phone"/> 

    <input type="submit" name="submit" value="Insert New Students" /> 

    <?php echo '</form>'; ?> 

jQuery的一部分是低于

  $(document).ready(function(){ 

       $('form').submit(function(){ 
        //alert('ok');  
        $.ajax({ 
         url:this.action, 
         **type:this.method,** 
         data:$(this).serialize(), 
         success:function(data){ 
          var obj = $.parseJSON(data); 

          if(obj['roll']!=null) 
          {        
           $('#message').text(""); 
           $('#message').html(obj['roll']); 
           $('#message').append(obj['name']); 
           $('#message').append(obj['phone']); 
          } 
          else 
          {        
           $('#message').text(""); 
           $('#message').html(obj); 
          } 

         }, 
         erro:function(){ 
          alert("Please Try Again"); 
         }       
        }); 
        return false; 
       });       
      }); 

     </script>