2011-07-21 108 views
0

我正在嘗試使用jquery/codeigniter進行ajax請求。好吧,似乎有一個問題。我得到它的工作,但它似乎像POST不發送,出於某種原因...Codeigniter ajax請求輸出失敗

的Javascript

$('#profileUpdateButton').click(function() { 

     $.ajax({ // Starter Ajax Call 

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

     }); 

     return false; 

    }); 

從笨控制器

if($this->input->is_ajax_request()) { 
     echo $this->input->post('profileUpdate'); 
    } 

如果我更換「回聲$ this->」等等。只用回聲「你好」,我得到一個警告框與「你好」,爲什麼我不能從框中的文本?

HTML

<div id="statusUpdate"> 
     <?php echo form_open(base_url() . 'profile/statusUpdate', array('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> 
+0

你試過提醒$('#statusUpdateFo rm')。serialize()進入click事件處理程序? – Dalen

+0

運行'var_dump($ _ POST)'時發生了什麼?應該是你的默認調試工具之一:http://php.net/manual/en/function.var-dump.php –

+0

如果我var_dump我得到數組(0){}和警報$('#statusUpdateForm') .serialize()給我http://prntscr.com/2ecwh – Dexty

回答

2

你的HTML標記改成這樣......

<div id="statusUpdate">     <!-- Use ID not NAME here |v| --> 
    <?php echo form_open(base_url() . 'profile/statusUpdate', array('id' => '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> 

你設置窗體的和你選擇$('#statusUpdateForm')這意味着ID statusUpdateForm的,不是名稱屬性...