在PHP中发送包含大量值的表单
我正在开发一种形式,人们可以通过托盘系统订购餐饮服务(按试吃尺寸、中尺寸和大尺寸订购食品),我很难弄清楚如何做到这一点。我的第一个想法是这样编码:在PHP中发送包含大量值的表单,php,forms,Php,Forms,我正在开发一种形式,人们可以通过托盘系统订购餐饮服务(按试吃尺寸、中尺寸和大尺寸订购食品),我很难弄清楚如何做到这一点。我的第一个想法是这样编码: <form id="tray" name="tray" method="post" action="send_mail_tray.php" onsubmit='return packageValidator()'> <table> <tr> <td>Pork Fried Rice
<form id="tray" name="tray" method="post" action="send_mail_tray.php" onsubmit='return packageValidator()'>
<table>
<tr>
<td>Pork Fried Rice</td>
<td>
Med.:<br />
Lg. :
</td>
<td>
<input type="text" name="PorkFriedRiceMed" style="width: 20px; height: 15px" /><br />
<input type="text" name="PorkFriedRiceLg" style="width: 20px; height: 15px" />
</td>
<td>Vegetable Spring Rolls</td>
<td>
Med.:<br />
Lg. :
</td>
<td>
<input type="text" name="VegetableSpringRollsMed" style="width: 20px; height: 15px" /><br />
<input type="text" name="VegetableSpringRollsLg" style="width: 20px; height: 15px" />
</td>
<td>Beef w/ Broccoli</td>
<td>
Med.:<br />
Lg. :
</td>
<td>
<input type="text" name="Beefw/BroccoliMed" style="width: 20px; height: 15px" /><br />
<input type="text" name="Beefw/BroccoliLg" style="width: 20px; height: 15px" />
</td>
</tr>
<tr>
<td>
<input type="Submit" value="Submit" />
</td>
</tr>
</table>
</form>
猪肉炒饭
医学:
Lg.:
蔬菜春卷
医学:
Lg.:
牛肉配西兰花
医学:
Lg.:
使用此方法,我必须能够发布变量名和值。起初,我认为这是最好的方法,然而,经过思考后,提供的食物清单超过150份,这意味着我必须创建300多美元的帖子才能获得整个菜单,并且我将发送的电子邮件必须包含清单上的所有项目,即使没有订购。是否有更简单的方法来制作我正在制作的表单,或者我的第一个方法是最好的方法?这些值是否来自数据库?如果没有,那么他们应该。。。或者至少可以从某种数据结构动态生成表单,例如
$menu = array(
0 => array('name' => 'Vegetable Spring Rolls', 'sizes' => array('L', 'M', 'S')),
1 => array('name' => 'foo', 'sizes' => array(...)),
etc...
);
然后使用
foreach($menu as $key => $item) {
echo <<<EOL
<input type="text" name="item_{$key}" value="{$item['name']}" />
EOL;
}
简言之,如果您正确构建表单,不管有多少字段,您仍然可以用很少的代码开销自动处理它们。这些值来自数据库吗?如果没有,那么他们应该。。。或者至少可以从某种数据结构动态生成表单,例如
$menu = array(
0 => array('name' => 'Vegetable Spring Rolls', 'sizes' => array('L', 'M', 'S')),
1 => array('name' => 'foo', 'sizes' => array(...)),
etc...
);
然后使用
foreach($menu as $key => $item) {
echo <<<EOL
<input type="text" name="item_{$key}" value="{$item['name']}" />
EOL;
}
简言之,如果您正确地构建表单,不管有多少字段,您仍然可以以很少的代码开销自动处理它们。有这么多的名称可能会让人痛苦 使用PHP5可以影响这样的名称
<input type="text" name="food[PorkFriedRice][med]"> ...
<input type="text" name="food[PorkFriedRice][lg]">
提示:
为了节省一些HTML大小,您最好在输入中添加一个CSS类来设置样式:
#托盘输入{宽度:20px;高度:15px}
有这么多名称可能会让人痛苦
使用PHP5可以影响这样的名称
<input type="text" name="food[PorkFriedRice][med]"> ...
<input type="text" name="food[PorkFriedRice][lg]">
提示:
为了节省一些HTML大小,您最好在输入中添加一个CSS类来设置样式:
#托盘输入{宽度:20px;高度:15px}
请注意,在post中发送所有这些数据,也可能导致查询字符串过长错误
另一个最好的解决方案也可以通过ajax来实现,因为如果列表很长,您可以在保存循环中向用户反馈一个进度条
这个列表可以很容易地分成几个部分,用Json编码并在登录页中获取Json数据。您可以通过示例在$中执行。每个jQuery中都包含一个max item变量
使用jQuery$.getJson
或普通的$.Ajax
如果您认为此解决方案有帮助,我们可以添加更多有关的信息,但web是完全文档化的请注意,在帖子中发送所有这些数据,也可能导致查询字符串过长
错误
另一个最好的解决方案也可以通过ajax来实现,因为如果列表很长,您可以在保存循环中向用户反馈一个进度条
这个列表可以很容易地分成几个部分,用Json编码并在登录页中获取Json数据。您可以通过示例在$中执行。每个jQuery中都包含一个max item变量
使用jQuery$.getJson
或普通的$.Ajax
如果您认为此解决方案有帮助,我们可以添加有关的更多信息,但web是完全文档化的请勿在输入的名称
属性中使用空格,它将成为PHP$_PostItems的名称。您将名称
与值
混淆,这太棒了,因为它引用了中国食物。不要在输入的名称
属性中使用空格,你把名称
和值
搞混了,这太棒了,因为提到了中国食物。几年前,我必须获得一份工作的打字速度认证。每分钟101英里。想想看,我以每分钟8分钟的成绩完成了高中学业。几年前,我必须获得一份工作的打字速度证书。每分钟101英里。想想看,我以每分钟8英里的成绩完成了高中学业。