0

我有这些文本输入,其中预加载了有关文档加载的用户信息。我的输入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>

我的预加载在 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。

4

2 回答 2

1

正如@Joel_Blum 所说,还要这样做:您应该return false;在函数主体的末尾添加on('click',function(){ ...以防止重新加载页面。

于 2013-02-22T18:00:22.373 回答
0

试试这个

url :  '<?php echo site_url("accounts/update_user_account_ajax")?>
于 2013-02-22T17:25:15.817 回答