问题1:我有一个表单,其中包含从数据库中提取的事件列表,旁边有用于注册出席者的复选框。有一个额外的复选框表示任何特殊要求,以及一个文本字段来详细说明('如果是,请提供更多详细信息...')。在HTML表单中使用多维数组
我想将客户参加的每个事件存储在包含事件ID,'是/否'的特定要求和任何此类要求的详细信息的多维数组中。我以为我是在轨道上:
Personal information
First name
"firstname" />*
Surname
"surname" />*
Company
"company" />*
Which exhibition(s)?
$venues_query="SELECT exhibitions.exhib_id AS exhib_id, venues.venue_name AS venue, DATE_FORMAT(exhibitions.exhib_date, '%d/%m/%y') AS date FROM venues, exhibitions WHERE exhibitions.venue_id = venues.venue_id AND (exhibitions.exhib_date>=CURDATE())ORDER BY exhibitions.exhib_date";
$venues_result=mysql_query($venues_query);
while($venues=mysql_fetch_array($venues_result, MYSQL_ASSOC)){
echo ' '.$venues['venue'].' - '.$venues['date'].'
';
echo 'Special requirements?
';
echo 'If yes, please give more details... ';
}
mysql_close();
?>
Terms and conditions:
T&Cs here
...但是当我做var_dump($_POST['registrations']);,我只得到:
array(4) { [0]=> string(5) "00132" [1]=> string(5) "00140" [2]=> string(5) "00135" [3]=> string(5) "00136" }
的五位数字是事件ID,从拉数据库(我在本例中已经注册了四个事件),但其他信息看起来并没有被存储。我期望它是非常明显的,但任何人都可以知道我要去哪里错了吗?
foreach ($_POST['registrations'] as $registration)
{
echo '$registration[id]';
echo '$registration[requirements]';
echo '$registration[requirements_details]';
// etc
}
问题2:我想确保当有特殊要求复选框被选中,细节框也填写完毕。以前,我为表单的每个部分都有三个单独的数组,并且在滴答数量和完成的输入框数量上做了count()。如果他们不匹配,表单将不会处理。但是,我相信有一个更简单的方法来实现这一点,并会感激任何意见!
2013-03-11
Martin
+0
只是使用SQL数据库大声笑,1为勾号0为未勾号,并添加信息 –
2013-03-11 14:08:36
+0
**问题2 **是一个完全不同的,几乎没有相关的问题。我会建议为问题1获得答案,然后(一旦你可以正确描述你的表格)发布问题2的另一个问题。 –
2013-03-11 14:16:58
+0
会这样做,谢谢艾曼。我认为这可能是可以在(大致)同一时间修复的,但我会一次发布一个。 –
2013-03-11 14:27:06