这是调查的一部分,我的日期选项有问题。我已经测试过,当我提交时,该值实际上被保存到$ _POST数组中,但是一旦提交,我就无法预先选择该值。希望有人可以帮助我。
<pre>
$day=’’;
if (isset($_POST['submit']))
{
if(isset($_POST['day']))
{
$day = $_POST['day'];
}
$dayhtml='<select name="day">';
for($i=1;$i<=31;$i++)
{
if($day==$i)
{
$dayhtml.="<option value='$i' selected>$i</option>";
}
else
{
$dayhtml.="<option value='$i'>$i</option>";
}
}
$dayhtml.='</select>';
echo $dayhtml;
</pre>
答案 0 :(得分:1)
首先尝试回显$ day并检查其值是01或1还是02或2,并且您要与1和2等进行比较。
如果不是这种情况,那么将$ i转换为字符串,因为$ i是数字,$ _POST ['day']中的内容是字符串。虽然php松散耦合,但有时会产生问题。
如果你把代码放在一起也会很好。如何输入一天。
答案 1 :(得分:1)
这对我有用,似乎你有if (isset($_POST['submit']) { }
块的缺少右括号可能导致问题。使用$day=0
也有助于澄清代码。
最好将字符串放在单引号中
$day=0;
if (isset($_POST['submit']))
{
if(isset($_POST['day']))
{
$day = $_POST['day'];
}
} # <!-- missing closing brace
$dayhtml='<select name="day">';
for($i=1;$i<=31;$i++)
{
if($day==$i)
{
$dayhtml.= '<option value="'.$i.'" selected>'.$i.'</option>';
}
else
{
$dayhtml.='<option value="'.$i.'">'.$i.'</option>';
}
}
$dayhtml.='</select>';
echo $dayhtml;
答案 2 :(得分:1)
您的代码在添加缺少的大括号之后会起作用,该大括号应该在此行之前:
$dayhtml='<select name="day">';
请发布您的所有HTML,并确保您的提交按钮的名称为“提交”。
以下对我来说效果很好:
$day = 0;
if(isset($_POST['day']))
$day = $_POST['day'];
$dayhtml='<form method="post"><select name="day">';
for($i=1;$i<=31;$i++)
{
$selected = ($day == $i) ? 'selected' : '';
$dayhtml.= '<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
}
$dayhtml.='</select><input type="submit" /></form>';
echo $dayhtml;
答案 3 :(得分:0)
您遇到语法错误,请尝试使用以下代码:
$day=''; // take a look here, '' instead ``
if (isset($_POST['submit']))
{
if( isset($_POST['day']) )
{
$day = $_POST['day'];
}
$dayhtml='<select name="day">';
for($i=1;$i<=31;$i++)
{
if($day==$i) {
$dayhtml.='<option value="' . $i . '" selected="selected">' . $i . '</option>';
}
else
{
$dayhtml.='<option value="' . $i . '">' . $i . '</option>';
}
}
$dayhtml.='</select>';
echo $dayhtml;
} // missing `}` here
注意:当您在html
中编写php
代码时,最好将属性换成双引号而不是单引号
答案 4 :(得分:0)
将您的$day=’’;
替换为$day=0
..
你的问题将得到解决。我在电脑上查了一下......
您使用的commas
不合适...