我正在尝试使用jquery / codeigniter发出ajax请求。好吧,似乎有一个问题。我确实让它工作,但似乎POST没有发送,出于某种原因......
的Javascript
$('#profileUpdateButton').click(function() {
$.ajax({ // Starter Ajax Call
method: "POST",
url: baseurl + 'profile/statusUpdate',
data: $('#statusUpdateForm').serialize(),
success: function(data) {
alert(data);
}
});
return false;
});
来自codeigniter控制器
if($this->input->is_ajax_request()) {
echo $this->input->post('profileUpdate');
}
如果我更换“echo $ 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 :(得分: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')
,这意味着statusUpdateForm的 id ,而不是名称属性......