-6

是否可以仅使用 1 个输入获得这样的输出?

<input name="value"/>
$_POST['value'] = 1;
$_POST['value'] = 2;
$_POST['value'] = 3;
$_POST['value'] = etc;

编辑:我正在尝试使用单个表单输入传递一个数组。

4

3 回答 3

1

要提交具有相同名称的多个输入,[]请在末尾附加括号,如下所示

<input type="text" name="bob[]" />
<input type="text" name="bob[]" />
<input type="text" name="bob[]" />
<input type="text" name="bob[]" />
<input type="text" name="bob[]" />

另一方面,bob将是一个数组:

<?php

$Bob = (isset($_POST['bob']) === TRUE ? $_POST['bob'] array());

echo 'RES:'. implode(',', $Bob);

?>
于 2012-09-19T21:06:53.553 回答
0

不,除非您使用 ajax 一次存储一个值,否则不会。

于 2012-09-19T21:05:31.497 回答
0

您的问题有点不清楚,但是如果您尝试使用单个表单传递数组,input那么简短的回答是否定的,使用单个元素您不能将数组传递到 POST 数组(多选表单除外element ),但是一旦提交,只需进行一点处理就很容易了。您只需在值上使用分隔符并在 PHP 中将其分解:

在 HTML 中:

<input name="value" value="1|2|4|4|5" />

在 PHP 中

$values = explode('|',$_POST['value']);

这将导致:

$values[0] == 1;
$values[1] == 2;
...

然而,从来没有办法让一个 PHP 数组同时为一个键具有多个值,所以你永远不会有一个看起来像这样的 PHP 数组:

$_POST['value'] = 1;
$_POST['value'] = 2;
$_POST['value'] = 3;
$_POST['value'] = etc;

因为对于任何数组(_POST或其他),$array[KEY] 都不能有两个值(即,怎么可能if ($_POST['value'] === $_POST['value'])不为真?它不能,任何更多if ($x===$x)if (1===1)可以是假的)。但是,您可以使用多维数组,如下所示:

$_POST['value'][0] = 1;
$_POST['value'][1] = 2;
$_POST['value'][2] = 3;
$_POST['value'][3] = 'etc';

然后通过以下方式使用它:

foreach($_POST['value'] as $key =>$value){
    echo $value.',';
}

这将输出

1,2,3,etc
于 2012-09-19T21:14:27.060 回答