日期没有';回声&x27;命令-php
我有一个每年更新一次的表单,因此用户输入日期和其他信息,然后提交表单,表单存储在数据库中。当他们一年后回来时,他们也会用同样的方法覆盖旧的记录,问题是当他们回来时,旧的日期会被重复,这是不应该发生的。所有其他字段都应为空。我不是要求代码中重复日期,但它仍然是 用于定义日期下拉列表的代码日期没有';回声&x27;命令-php,php,Php,我有一个每年更新一次的表单,因此用户输入日期和其他信息,然后提交表单,表单存储在数据库中。当他们一年后回来时,他们也会用同样的方法覆盖旧的记录,问题是当他们回来时,旧的日期会被重复,这是不应该发生的。所有其他字段都应为空。我不是要求代码中重复日期,但它仍然是 用于定义日期下拉列表的代码 // parameters: $fname - main name of field // $date - actual date value from database //
// parameters: $fname - main name of field
// $date - actual date value from database
// $beginYear - first value in year list
// $endYear - last value in year list
// return: none
function make_date_pulldown($fname, $date, $beginYear, $endYear)
{
// read the date and break it up into $Year, $Month and $Day
// so that we can set the "SELECTED" in the option list
if ($date == ""){
// set some default values to be safe
$Year = 0;
$Month = 0;
$Day = 0;
} else {
$Year = (int) substr($date,0,4);
$Month = (int) substr($date,5,2);
$Day = (int) substr($date,8,2);
}
// need to build a table around these guys so that there won't
// be any word wrap... it's going to be a 1 row by 5 cols.
echo "<table border=0 cellspacing=0 cellpadding=0>\n";
echo "<tr>\n";
// build month list
echo " <td><font class=bluetext face=verdana,arial size=-2>\n";
echo " <center>Month<br>\n";
echo "<select name='month_$fname'>\n";
echo " <option value='00'></option>\n";
for ($i=1;$i<=12;$i++){
printf (" <option value='%02d'",$i);
if ($i == $Month) {
printf (" SELECTED");
}
printf (">%02d</option>\n",$i);
}
echo "</select>\n";
echo " </center>\n";
echo " </td>\n";
echo " <td><font class=bluetext face=verdana,arial size=-2>\n";
echo "/";
echo " </td>\n";
// build day list
echo " <td><font class=bluetext face=verdana,arial size=-2>\n";
echo " <center>Day<br>\n";
echo "<select name='day_$fname'>\n";
echo " <option value='00'></option>\n";
for ($i=1;$i<=31;$i++){
printf (" <option value='%02d'",$i);
if ($i == $Day) {
printf (" SELECTED");
}
printf (">%02d</option>\n",$i);
}
echo "</select>\n";
echo " </center>\n";
echo " </td>\n";
echo " <td><font class=bluetext face=verdana,arial size=-2>\n";
echo "/";
echo " </td>\n";
// build year list
echo " <td><font class=bluetext face=verdana,arial size=-2>\n";
echo " <center>Year<br>\n";
echo "<select name='year_$fname'>\n";
echo " <option value='0000'></option>\n";
for ($i=$beginYear;$i<=$endYear;$i++){
printf (" <option value='%d'",$i);
if ($i == $Year) {
printf (" SELECTED");
}
printf (">%d</option>\n",$i);
}
echo "</select>\n";
echo " </center>\n";
echo " </td>\n";
echo "</tr>\n";
echo "</table>\n";
}
//参数:$fname-字段的主名称
//$date-数据库中的实际日期值
//$beginYear-年度列表中的第一个值
//$endYear-年度列表中的最后一个值
//返回:无
函数make_date_下拉列表($fname、$date、$beginYear、$endYear)
{
//阅读日期并将其分为$Year、$Month和$Day
//这样我们就可以在选项列表中设置“已选”
如果($date==“”){
//将一些默认值设置为安全值
$Year=0;
$Month=0;
$Day=0;
}否则{
$Year=(int)substr($date,0,4);
$Month=(int)substr($date,5,2);
$Day=(int)substr($date,8,2);
}
//需要在这些家伙周围建一张桌子这样就不会有
//可以任意换行…它将是一行乘5列。
回音“\n”;
回音“\n”;
//生成月份列表
回音“\n”;
回显“月
\n”;
回音“\n”;
回音“\n”;
对于($i=1;$i看起来您希望基于年份创建一个下拉菜单
$date = new DateTime();
//Years
echo makeSelect($date->format("Y")-1, $date->format("Y")+1,$date->format("Y"));
//Month
echo makeSelect(1, 12,$date->format("m"));
//Day
echo makeSelect(1, $date->format("t"),$date->format("d"));
使用的功能
function makeSelect($start, $end, $default = null) {
$content = "<select>";
$range = range($start, $end);
$selected = "";
foreach ( $range as $value ) {
$selected = ($default == $value) ? "selected" : null;
$content .= sprintf('<option value="%s" %s>%1$s</option>', $value, $selected);
}
$content .= "</select>";
return $content;
}
函数makeSelect($start,$end,$default=null){
$content=“”;
$range=范围($start,$end);
$selected=“”;
foreach(范围为$value){
$selected=($default==$value)?“selected”:空;
$content.=sprintf('%1$s',$value,$selected);
}
$content.=”;
返回$content;
}
找到了答案,在调用数据库表的get_uu()函数中,我读取了提交日期的行,它根据该命令和make_date_下拉函数拉取并显示了日期
下面是该函数的外观(显然已缩减):
请向我们展示make\u date\u下拉列表
函数的所有内容。正如我所看到的,这并不是它的全部内容。你确定你发布的第二个代码是唯一负责回显函数结果的代码吗?我在这里看不到任何与输出相关的代码……也许它在你的代码中的其他地方?@Ryeboflaven你能提供完整的co代码吗de of make_date_pulldown()下拉功能工作正常,存储信息也很好。问题是它正在从数据库中回显信息,我不希望它这样做。
function makeSelect($start, $end, $default = null) {
$content = "<select>";
$range = range($start, $end);
$selected = "";
foreach ( $range as $value ) {
$selected = ($default == $value) ? "selected" : null;
$content .= sprintf('<option value="%s" %s>%1$s</option>', $value, $selected);
}
$content .= "</select>";
return $content;
}
<?
function get_submit($id, &$submitdate)
{
$query = "select * from submit where id = $id";
$result = mysql_query($query);
if ($result) {
$total_rows = mysql_numrows($result);
} else { $total_rows = 0; }
if ($total_rows > 0) {
$submitdate = trim(mysql_result($result, "", "submitdate"));
} else {
$submitdate = "";
$found = 1;
}
}
?>