通过POST通过php提交多维数组

我有一个php表单,该表单具有已知的列数(例如,顶部直径,底部直径,织物,颜色,数量),但是行数未知,因为用户可以根据需要添加行。

我发现了如何采用每个字段(列)并将其放入各自的数组中。

<input name="topdiameter['+current+']" type="text" id="topdiameter'+current+'" size="5" />

<input name="bottomdiameter['+current+']" type="text" id="bottomdiameter'+current+'" size="5" />

因此,我最终在HTML中得到的是:

<tr>

<td><input name="topdiameter[0]" type="text" id="topdiameter0" size="5" /></td>

<td><input name="bottomdiameter[0]" type="text" id="bottomdiameter0" size="5" /></td>

</tr>

<tr>

<td><input name="topdiameter[1]" type="text" id="topdiameter1" size="5" /></td>

<td><input name="bottomdiameter[1]" type="text" id="bottomdiameter1" size="5" /></td>

</tr>

...and so on.

我现在想做的是将所有行和列都放入多维数组,然后将其内容通过电子邮件发送给客户端(最好在格式良好的表中)。我还无法真正理解如何将所有这些输入和选择组合到一个不错的数组中。

在这一点上,我将不得不尝试使用多个1D数组,尽管我认为使用单个2D数组比使用多个1D数组更好。

回答:

提交时,您将获得一个数组,就像创建时一样:

$_POST['topdiameter'] = array( 'first value', 'second value' );

$_POST['bottomdiameter'] = array( 'first value', 'second value' );

但是,我建议将表单名称改为这种格式:

name="diameters[0][top]"

name="diameters[0][bottom]"

name="diameters[1][top]"

name="diameters[1][bottom]"

...

使用该格式,遍历这些值要容易得多。

if ( isset( $_POST['diameters'] ) )

{

echo '<table>';

foreach ( $_POST['diameters'] as $diam )

{

// here you have access to $diam['top'] and $diam['bottom']

echo '<tr>';

echo ' <td>', $diam['top'], '</td>';

echo ' <td>', $diam['bottom'], '</td>';

echo '</tr>';

}

echo '</table>';

}

以上是 通过POST通过php提交多维数组 的全部内容, 来源链接: utcz.com/qa/406197.html

回到顶部