我在PHP表单上有两个部分。一个部分允许输入客户信息(名称,地址等),另一部分允许输入客户产品及其详细信息(约15个文本框)和提交按钮。用户可以输入同一客户的无限产品和详细信息。我有2张桌子。 Customer表和Cust_Products表。所以我认为我必须将表格提交给自己并保留第一部分数据并清除第二部分。实现此功能的最佳做法是什么?
答案 0 :(得分:1)
好吧,您可以添加一个检查以查看表单是否已提交给自己,并输出相应的表单,并注意保存已发布的值。
if (isset($_POST['submit']))
{ // product & details form
}
else
{ // customer information
}
答案 1 :(得分:0)
您可以在第一次创建会话后将客户ID存储在会话中。如果再次打开表单,则检查会话中的ID,如果已设置,则显示客户的详细信息和表单以添加其他产品。
如果未设置会话(或用户希望创建新客户:提供重置会话中ID的链接),则提供创建客户的表单。
答案 2 :(得分:0)
为您的表单提供以下内容:
<input type="hidden" name="user_name" value="$_POST['user_name']">
这样,如果您重新发布到同一页面,则可以继续使用相同的用户名,而无需用户一直输入。
答案 3 :(得分:0)
我在移除对象时使用此选项以强制用户单击“删除”两次以确认他们确实想要删除某些内容,但我认为它应该可以很好地为您完成情况也是如此
function yourmodule_FORM_ID($form, &$form_state) {
if(!isset($form_state['storage']['confirm'])){
//this is where your first form goes
}
else{
//this is the second form
}
}
function yourmodule_FORM_ID_submit($form, &$form_state) {
if(!isset($form_state['storage']['confirm'])){
$form_state['storage']['confirm'] = TRUE;
$form_state['rebuild'] = TRUE;
//this is where the first form's submit would go
//you can stuff some info into $form_state if you need it
}
else{
//this is where the second form's submit would go
}
}