2013-08-18 59 views
1

我是新来的php和web编程。无法返回表格的值

我正在编写一个收集散文的网站。在提交表格中,我希望通过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; 
    } 

提交表单页面的3-,我把下面的代码:

show_date_dropdown_row("release_date", "Release Date", $days_list, $months_list, $years_list, ""); 

4-名“上映时间”,然后添加到数据库中。

该页面完美地显示了三个下拉列表。但问题是数据库中的“release_date”没有存储任何值。

我尝试了第1步中的功能,它完美地工作。我知道问题出在第二步,但不知道在哪里。

+0

你在哪里定义$ name1,$ name2和$ name3? UX中还有更好的方式来显示日期输入,我建议你找一个datepicker插件 –

+0

我没有定义它们。我一定要吗? – Selwin

+0

为datepicker插件,它对我没有用处,因为我添加的文章可以追溯到80年代和90年代,所以这将是耗时的。 – Selwin

回答

0

首先你在show_dropdown_row中的return语句不会提供你想要的日期。当用户请求页面时,该功能只运行一次。

因此,不应该在get_dropdown_options函数中使用$ name1,$ name2和$ name3,而应该使用类似的值。日,月和年作为您所选元素的名称。

在您的PHP脚本中提交表单时,您应该使用post或get来捕获这些值。 之类的。

$dates=$_POST['year']."-".$_POST['month']."-".$_POST['day'];