在提交时选择我的$ _POST选择选项

时间:2014-03-12 08:32:21

标签: php forms

这是调查的一部分,我的日期选项有问题。我已经测试过,当我提交时,该值实际上被保存到$ _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>

5 个答案:

答案 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不合适...