How to set selected value of HTML select box with PHP

后端 未结 8 817
暖寄归人
暖寄归人 2020-11-30 11:19

I have a next piece of the template:


                        
    
提交评论

  • 2020-11-30 12:10

    Another way ( as used in WordPress ) Link to Wordpress code which employs reusability would be:

        <select name='result[interest]' style="width:400px">
            <option value='SEO' <?php selected($result['interest'], 'SEO'); ?>>SEO</option>
            <option value='AUTO' <?php selected($result['interest'], 'AUTO'); ?>>Auto</option>
        </select>
    

    The selected() function determines if the value was choosen and sets the selected option.

    /**
     * Outputs the html selected attribute.
     *
     * Compares the first two arguments and if identical marks as selected
     *
     * @since 1.0.0
     *
     * @param mixed $selected One of the values to compare
     * @param mixed $current  (true) The other value to compare if not just true
     * @param bool  $echo     Whether to echo or just return the string
     * @return string html attribute or empty string
     */
    function selected( $selected, $current = true, $echo = true ) {
        return __checked_selected_helper( $selected, $current, $echo, 'selected' );
    }
    

    The selected() function in turn calls the helper function below to compare and determine whether the value is the selected or not. It returns 'selected=selected' or ''.

    /**
     * Private helper function for checked, selected, disabled and readonly.
     *
     * Compares the first two arguments and if identical marks as $type
     *
     * @since 2.8.0
     * @access private
     *
     * @param mixed  $helper  One of the values to compare
     * @param mixed  $current (true) The other value to compare if not just true
     * @param bool   $echo    Whether to echo or just return the string
     * @param string $type    The type of checked|selected|disabled|readonly we are doing
     * @return string html attribute or empty string
     */
    function __checked_selected_helper( $helper, $current, $echo, $type ) {
        if ( (string) $helper === (string) $current ) {
            $result = " $type='$type'";
        } else {
            $result = '';
        }
    
        if ( $echo ) {
            echo $result;
        }
    
        return $result;
    }
    
    0 讨论(0)
  • 提交回复
    热议问题