使用jquery构建php数组

时间:2010-07-07 06:31:42

标签: php jquery

我有一个选择框,其中有一个项目列表,他为每个选定的选项输入值并保存。 我写了一个类似的函数。

$('.add_recordings').click(function () {
    if (($('#recordings_name').val() != '') && ($('#recordings_value').val() != '')) {
        if ($('#recordings').val() == '') {
            var result = $('#recordings_name').val() + '=' + $('#recordings_value').val();
            $('#recordings').html(result);

            var result1 = $('#recordings_name').val() + '=>' + $('#recordings_value').val();
            $('#recordings_array').val(result1);
        }
        else {
            var result = ', ' + $('#recordings_name').val() + '=' + $('#recordings_value').val();
            $('#recordings').append(result);

            var result1 = ', ' + $('#recordings_name').val() + '=>' + $('#recordings_value').val();
            alert(result1);
            $('#recordings_array').append(result1);
        }
    }

});

recordings_array的append函数不起作用,它是text类型的输入。

我想要做的是使用jquery构建一个php数组,以便它可以在$ _POST中传递..有没有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

  

recordings_array的追加功能不起作用,它的a   输入文字类型

为什么不设置它的值而不是追加?

$('#recordings_array').val(result1);

修改

如果你想附加值,那么在jQuery 1.4上很容易

$('#recordings_array').val(function(i,val){
    return val + result1; 
    // this will get the current value of the input (val), 
    // add result1, then return the result as the new value of the input
});

以下jQuery 1.4

$('#recordings_array').val($('#recordings_array').val() + result1);

答案 1 :(得分:1)

如果您没有发送任何其他数据并通过Ajax发送,我会完全不同:

创建一个全局记录对象(用作关联数组):

var records = {};

,只需在点击发生时将值添加到此对象:

$('.add_recordings').click(function () {
    if (($('#recordings_name').val() != '') && ($('#recordings_value').val() != '')) {
            records[$('#recordings_name').val()] = $('#recordings_value').val();
    }
});

然后你发送它,例如与ajax()

$.ajax({
   type: "POST",
   url: "some.php",
   data: records,
   success: function(msg){
     /...
   }
});

records将转换为类似

的查询字符串
recordnameA=recordvalue&recordnameB=recordvalue

在PHP网站上,您已经在数组中拥有所有这些值:

$_POST['recordnameA']

当然,如果您通过POST发送其他数据,它也可以使用,您可以在使用unset($_POST['otherdata'])处理数据后从数组中删除此数据。


注意:在客户端构建PHP数组字符串只会令人困惑,您必须对其进行评估,例如:与eval()。但是你无法确保你获得的字符串只包含一个数组,用户可能已经操纵它并且你有一个潜在的安全漏洞。