2011-07-21 77 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的,不是名称属性...