问题:
我在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
答案 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 [] ,表示它将是一个数组。)