从jQuery数组中删除逗号

时间:2013-11-20 09:17:43

标签: javascript php jquery string forms

问题:

我在JS中有一个如下所示的数组:

["intelligence", "skin", "weight", "volume"]

这存储在名为“newListASource”的var中。我将此var应用于表单,然后使用POST提交。

// Form destination
var formUrl     = 'explorer.php',

// Generate the form
$form = $("<form action='"+ formUrl +"' method='post'></form>")
        .append("<input type='hidden' name='Perspective' value='" + newListASource + "'>")
        .append("<input type='hidden' name='form_submitted' value='true'>")
        .appendTo('body');

// Submit the form
$form.submit();

当我通过PHP选择它并将其打印出来时,它会给我一个带逗号的字符串。例如:

skin,weight,intelligence,volume

我想要的是所需的输出(在开头和结尾都有修剪过的空格):

skin weight intelligence volume

7 个答案:

答案 0 :(得分:5)

由于您使用的数组使用Array.join(),分隔符为' '

"<input type='hidden' name='Perspective' value='" + newListASource.join(' ') + "'>"

答案 1 :(得分:5)

newListASource.join(' ')会为您提供所需的结果 -

// Generate the form
$form = $("<form action='"+ formUrl +"' method='post'></form>")
    .append("<input type='hidden' name='Perspective' value='" 
        + newListASource.join(' ') + "'>")
    .append("<input type='hidden' name='form_submitted' value='true'>")
    .appendTo('body');

// Submit the form
$form.submit();

请参阅doc

目前,您正在获取逗号分隔值,因为每当您使用字符串连接数组时都会调用newListASource.toString(),这是数组的toString方法的默认行为。但是,当您调用join时,它会将您的数组转换为字符串,并以您作为参数传递给它的分隔符分隔。因此,在这种情况下,您将获得以空格分隔的值。

答案 2 :(得分:3)

使用.join()

newListASource.join(' ')

答案 3 :(得分:1)

您可以使用.join()$.trim()

// Form destination
var formUrl     = 'explorer.php',
    newListASource = newListASource.join(' ');

然后在表格中你可以改为:

$.trim(newListASource)  

答案 4 :(得分:0)

 var arr = ["intelligence", "skin", "weight", "volume"];


 var result = ary.join(',');

答案 5 :(得分:0)

就是这样:

arr.join("")

答案 6 :(得分:0)

您还可以做的就是将数组作为数组发送!

var formUrl     = 'explorer.php';
var $form = $("<form action='"+ formUrl +"' method='post'></form>")
    .append("<input type='hidden' name='form_submitted' value='true'>")
    .appendTo('body');
while(newListASource.length)
    $form.append($("<input type='hidden' name='Perspective[]' value=''>").val(newListASource.shift()));
$form.submit();
然后,Php将在$_POST['Perspective']内部实际拥有一个数组。 (注意输入名称现在是Perspective [] ,表示它将是一个数组。)