Fir*_*ght 95 php forms post submit multidimensional-array
我有一个PHP表单,其中包含已知数量的列(例如,顶部直径,底部直径,结构,颜色,数量),但行数未知,因为用户可以根据需要添加行.
我已经发现了如何获取每个字段(列)并将它们放入自己的数组中.
<input name="topdiameter['+current+']" type="text" id="topdiameter'+current+'" size="5" />
<input name="bottomdiameter['+current+']" type="text" id="bottomdiameter'+current+'" size="5" />
Run Code Online (Sandbox Code Playgroud)
所以我在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.
Run Code Online (Sandbox Code Playgroud)
我现在要做的是将所有行和列放入多维数组中,并将其内容通过电子邮件发送给客户端(最好是格式很好的表).我无法真正理解如何将所有这些输入和选择组合成一个漂亮的数组.
在这一点上,我将不得不尝试使用几个1D阵列,尽管我认为使用单个2D阵列比使用多个1D阵列更好.
Dis*_*oat 143
在提交时,您将获得一个数组,就好像这样创建:
$_POST['topdiameter'] = array( 'first value', 'second value' );
$_POST['bottomdiameter'] = array( 'first value', 'second value' );
Run Code Online (Sandbox Code Playgroud)
但是,我建议您将表单名称更改为此格式:
name="diameters[0][top]"
name="diameters[0][bottom]"
name="diameters[1][top]"
name="diameters[1][bottom]"
...
Run Code Online (Sandbox Code Playgroud)
使用该格式,循环使用这些值会更容易.
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>';
}
Run Code Online (Sandbox Code Playgroud)
Lai*_*jus 16
您可以使用这样的命名提交所有参数:
params[0][topdiameter]
params[0][bottomdiameter]
params[1][topdiameter]
params[1][bottomdiameter]
Run Code Online (Sandbox Code Playgroud)
然后你会做这样的事情:
foreach ($_REQUEST['params'] as $item) {
echo $item['topdiameter'];
echo $item['bottomdiameter'];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
164249 次 |
最近记录: |