2017-08-21 38 views
0

我想在“-24小时”中设置默认值。所有选项都是用foreach动态生成的。在php中设置选择输入的默认值

<select id="search3" name="date" onchange='this.form.submit();'> 
    <?php 
     $orderby_options3 = array(
      '-3day' => 'Last 3 days', 
      '-48hours' => '48 hours', 
      '-24hours' => '24 hours', 
     ); 
     foreach($orderby_options3 as $value3 => $label3) { 
      echo "<option ".selected($_GET['date'], $value3)." value='$value3'>$label3</option>"; 
     } 
    ?> 
</select> 

我知道我应该为选项添加“selected”参数,但在我的情况下,这是不可能的。

+2

我们可以看到 “选择” 功能,请 – IsThisJavascript

+0

我没有一个 – user1708580

+1

那么这条线是关于什么的? '选择($ _GET ['date'],$ value3)' – IsThisJavascript

回答

0

试试这个:

<select id="search3" name="date" onchange='this.form.submit();'> 
    <?php 
     $orderby_options3 = array(
      '-3day' => 'Last 3 days', 
      '-48hours' => '48 hours', 
      '-24hours' => '24 hours', 
     ); 
     foreach($orderby_options3 as $value3 => $label3) { 
      $selected = in_array($value3, [$_GET['date'] ?? null, '-24hours']) ? 'selected' : ''; 
      echo "<option $selected value='$value3'>$label3</option>"; 
     } 
    ?> 
</select> 

click to see the demo

+1

您已经在php标记中,这会中断。 – IsThisJavascript

+0

@ WillParky93我更新了我的答案,谢谢 – yoeunes

0

如果你总是希望-24hours被选中,而这个页面将不会被用作编辑页面,那么你可以做这样的事情:

<select id="search3" name="date" onchange='this.form.submit();'> 
<?php 
    $orderby_options3 = array(
     '-3day' => 'Last 3 days', 
     '-48hours' => '48 hours', 
     '-24hours' => '24 hours', 
    ); 

    foreach($orderby_options3 as $value3 => $label3) { 
     $select = ($value3 == '-24hours') ? "selected='selected'":""; // see this line 
     echo "<option ".selected($_GET['date'], $value3)." value='$value3' $select>$label3</option>"; 
    } 
?>