是否可以将数组转换为jQuery对象?

时间:2014-05-13 18:27:35

标签: php jquery codeigniter

场景:我已登录管理员窗口。管理员是在CodeIgniter中制作的。

我有一个用户列表

user1
user2
user3
etc...

Foreach用户我有一个隐藏的div,其中包含有关他们的隐藏信息

类似

<a href="#">user1</a>
<div class="info" style="display:none;">
info about user1
</div>

<a href="#">user2</a>
<div class="info" style="display:none;">
info about user2
</div>

<a href="#">user3</a>
<div class="info" style="display:none;">
info about user3
</div>

等...

上面包裹在表格中。

当我点击一个用户时,最近的info-class-div显示。有关每个用户的信息应该是可编辑的并保存到数据库中。

<a class="moreinfo-user" href="#">User1</a>

<div class="info" style="display:none;">
    Namn:<input type="text" name="username">
    Phone:<input type="text" name="phone">
<input class="save-houseinfo" data-userid="<?php echo $user_id;?>" value="Save to db" />                          
</div>

首先我认为我可以提出请求,但是所有的姓名和电话(nrs)都会与其他形式的内容一起发布,这似乎是浪费。

我的代码目前(jQuery):

$(".moreinfo-user").click(function(e){  

    //Save info for member      
    var user_id = $(this).attr('data-userid');    
    var parent_div = $(this).parent('.info');

    var info_name = parent_div.find('.house_name').val();
    var info_phone =  parent_div.find('.house_phone').val();


    var use_url = CI.base_url + 'membership/ajax_membership/quicksave/' 
        + encodeURIComponent(house_name) + '/' '
        + encodeURIComponent(house_phone);


    var saveInfo = $.ajax({
        type: 'GET',
        url: use_url,                              
        dataType: 'json'
    });

    saveInfo.done(function(data) {
        alert('done');
        $(this).css('font-weight', 'bold').css('background', 'yellow').val('Sparat')
        $(this).parent().fadeOut(4000);
        alert(data);
    });

    saveInfo.fail(function(ts) {
        alert(ts.responseText);
    });

});

我不确定如何发送数据......这有效......

var use_url = CI.base_url + 'membership/ajax_membership/quicksave/' 
            + encodeURIComponent(info_name) + '/' '
            + encodeURIComponent(info_phone);

但我想发送一个这样的序列化对象:

var info = {}
info.user_id = user_id;
info.name = info_name;
info.phone = info_phone;
var use_url =     var use_url = CI.base_url + 'membership/ajax_membership/quicksave/' 
                + info.serialize();

但是在console.log中它说serialize()不是一个函数。我认为信息不是jQuery对象 - 这就是我得到错误的原因。有没有一种方法可以将信息转换为jQuery对象?

我只想在控制器中抓取这样的数据:

public function quicksave($info_data) {
    //save stuff to db
    echo json_encode('saved info about user with user id ' . $info_data['user_id']);  
}

1 个答案:

答案 0 :(得分:1)

您正在寻找jQuery.param()

jQuery.param(info)