dth20986 2011-10-04 09:51
浏览 34
已采纳

在验证表单期间设置select元素值的其他方法?

Normally I would do something like this:

<select name="myselect">
  <option value="opt1" <?=($_POST['myselect']=="opt1"?"SELECTED":"")?>>Option 1</option>
  <option value="opt2" <?=($_POST['myselect']=="opt2"?"SELECTED":"")?>>Option 2</option>
</select>

However this time I've taken a list of all the countries in a select from this website: http://snippets.dzone.com/posts/show/376

To go through each of those and put in the validation will be insane.

There is a php solution in the comments but it seems somewhat inelegant.

Is there an alternative way to do this or something similar? I would prefer not to use javascript, and I'm not sure I want to rely on the browser caching.

Thanks

  • 写回答

3条回答 默认 最新

  • douchuoliu4422 2011-10-04 09:58
    关注
    // I'm using integers as key values in this example. Modify as needed.    
    $countries = array(
      1 => 'Some Country',
      // etc...
    );
    
    // Sanitize as needed, casting to integer in my example
    $selectedCountryCode = isset( $_POST['myselect'] ) ? (int) $_POST['myselect'] : null;
    
    $select = '<select name="myselect">';
    foreach( $countries as $countryCode => $countryName )
    {
        $selected = $selectedCountryCode == $countryCode ? ' selected="selected"' : '';
        $select .= '<option value="' . $countryCode .'"' . $selected . '>' . $countryName . '</option>';
    }
    $select .= '</select>';
    
    echo $select;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路