我有这些文本输入,其中预装了文档加载的用户信息。我的输入html如下
<div class="control-group">
<label class="control-label" for="first_name">First Name</label>
<div class="controls">
<input type="text" class="account" id="first_name" placeholder="First Name">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
<input type="text" class="account" id="inputEmail" placeholder="Email">
</div>
</div>
我的preload在jquery中是这样的,它在php函数中执行$ .post。这可以正常填充输入元素。
function loadUserInfo()
{
$.post('../accounts/load_user_info_ajax', null, function(data) {
console.log(data.message);//Test to return user id
var user = data.message;
$('#inputEmail').val(user.email);
$('#first_name').val(user.name);
}, 'json');
}
但是有一个更新btn,当我点击它时,它会向另一个函数发送$ .post。 jquery如下
$('.update').on('click',function(){
var type = $(this).attr('id');
if(type == "account")
{
postvars = {
name:$('#first_name').val(),
email : $('#inputEmail').val(),
};
url = '../accounts/update_user_account_ajax';
}
$.post(url, postvars, function(data) {
console.log(data);//Test to return user id
alert(data.message);
var user = data.message;
}, 'json');
});
首先我回来
function update_user_account_ajax()
{
if ($this->input->is_ajax_request()) {
echo json_encode("test");
}else {
show_404();
}
}
但没有任何反应,我也无法从chrome调试器网络中看到任何内容。该页面也会刷新并附加一个?对你。在此先感谢您的帮助。我正在为我的php使用codeigniter。
答案 0 :(得分:1)
正如@Joel_Blum所说,并且这样做:
您应该在函数return false;
的正文末尾添加on('click',function(){ ...
,以防止重新加载页面。
答案 1 :(得分:0)
试试这个
url : '<?php echo site_url("accounts/update_user_account_ajax")?>