我是php和网络编程的新手。
我正在编写一个收集论文的网站。在提交表单中,我希望通过3个选择下拉表单(日 - 月 - 年)输入日期。我曾经在文本字段中添加它们并将它们保存为数据库中的字符串。我已经添加了数百篇论文,所以我没有改变数据类型。
我做了以下事情: 1-我使用php进行了动态下拉:
function get_dropdown_options( $name, array $options, $selected=null ) {
$dropdown = '<select name="'.$name.'" id="'.$name.'">'."\n";
$selected = $selected;
foreach( $options as $key=>$option )
{
$select = $selected==$key ? ' selected' : null;
$dropdown .= '<option value="'.$key.'"'.$select.'>'.$option.'</option>'."\n";
}
$dropdown .= '</select>'."\n";
return $dropdown; }
2-然后我做了一个功能,显示了几天,几个月和几年的三个下拉菜单。
function show_date_dropdown_row($name, $label, $option1, $option2, $option3, $value = "") {
echo "<tr class=\"".get_row_bg()."\" valign='top'>\n<td><p class=\"rowtitle\">".$label."</p></td>\n";
echo "<td><p>\n";
echo get_dropdown_options($name1, $option1, $value1).get_dropdown_options($name2, $option2, $value2).get_dropdown_options($name3, $option3, $value3);
return $name = $name1." - ".$name2." - ".$name3;
}
在提交表单页面中,我输入以下代码:
show_date_dropdown_row("release_date", "Release Date", $days_list, $months_list, $years_list, "");
4-然后将名称“release_date”添加到数据库中。
该页面完美显示了三个下拉列表。但问题是数据库中的“release_date”不存储任何值。
我在第1步尝试了这个功能,它完美无缺。我知道问题出在第二步,但不知道在哪里。
答案 0 :(得分:0)
首先,show_dropdown_row中的return语句不会为您提供所需的日期。当用户请求页面时,该函数只运行一次。
因此,在get_dropdown_options函数中,不应使用$ name1,$ name2和$ name3,而应将值设置为。日,月和年作为选择元素的名称。
在您的PHP脚本上提交表单时,您应该使用post或get来捕获这些值。 等。
$dates=$_POST['year']."-".$_POST['month']."-".$_POST['day'];