记住选择字段值

  • 本文关键字:字段 选择 php html
  • 更新时间 :
  • 英文 :

public static function load_months()
{
    $output = "n <select id='month' name='month'>";
    $output .= "n <option value='0'>Month</option>";
    for($i = 1 ; $i <= 12; $i++)
    {
        $timestamp = mktime(0, 0, 0, $i, 10, 1980);
        $monthName = date("F", $timestamp);
        $output .= "n <option value='$i'>$monthName</option>";
    }
    $output .= "n </select>";
    echo($output);
}

我制作了上面的代码来显示月份名称的选择。我想让这个脚本记住发布的选定选项,就像会话数组下面的name字段一样。如何做到这一点?

<input type="text" name="fname" value="<?= $user_data->first_name ?>" placeholder="First Name" required>

您想要使用选项元素的"selected"属性。

public static function load_months($user_data = null)
{
    $output = "n <select id='month' name='month'>";
    $output .= "n <option value='0'>Month</option>";
    for($i = 1 ; $i <= 12; $i++)
    {
        $selected = ( !is_null($user_data) && isset($user_data->month) && $user_data->month == $i ? 'selected="selected"' : '' );
        $timestamp = mktime(0, 0, 0, $i, 10, 1980);
        $monthName = date("F", $timestamp);
        $output .= sprintf("n <option value='%s' %s>%s</option>",$i,$selected,$monthName);
    }
    $output .= "n </select>";
    echo($output);
}

然而,如果您关心可伸缩性。你可以做一些类似的事情

public static function load_months($selectedMonth = null)
{
    $output = "n <select id='month' name='month'>";
    $output .= "n <option value='0'>Month</option>";
    for($i = 1 ; $i <= 12; $i++)
    {
        $selected = ( !is_null($selectedMonth) && is_numeric($selectedMonth) && $selectedMonth == $i ? 'selected="selected"' : '' );
        $timestamp = mktime(0, 0, 0, $i, 10, 1980);
        $monthName = date("F", $timestamp);
        $output .= sprintf("n <option value='%s' %s>%s</option>",$i,$selected,$monthName);
    }
    $output .= "n </select>";
    echo($output);
}

您只需将所选月份传递给该方法即可。

将所选值作为参数传递给函数-

public static function load_months($selected)
{
    $output = "n <select id='month' name='month'>";
    $output .= "n <option value='0'>Month</option>";
    for($i = 1 ; $i <= 12; $i++)
    {
        $timestamp = mktime(0, 0, 0, $i, 10, 1980);
        $monthName = date("F", $timestamp);
         if($i==$selected)
      {
        $output .= "n <option value='$i' selected='selected'>$monthName</option>";
      }
       else
      {
           $output .= "n <option value='$i'>$monthName</option>";
       }
    }
    $output .= "n </select>";
    echo($output);
}

像这样:

if (isset($user_data->month) && $user_data->month == $i) {
            $output .= "n <option selected='selected' value='$i'>$monthName</option>";
} else {
            $output .= "n <option value='$i'>$monthName</option>";
}

最新更新