Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择下拉列表中的HTML和PHP问题_Php_Html - Fatal编程技术网

选择下拉列表中的HTML和PHP问题

选择下拉列表中的HTML和PHP问题,php,html,Php,Html,您好,我有一个下拉框,如下所示 function dropdown( $name, array $options, $selected=null ) { /*** begin the select ***/ $dropdown = '<select name="'.$name.'" id="'.$name.'">'."\n"; $selected = $selected; /*** loop over the options ***/ foreach( $options as $k

您好,我有一个下拉框,如下所示

function dropdown( $name, array $options, $selected=null )
{
/*** begin the select ***/
$dropdown = '<select name="'.$name.'" id="'.$name.'">'."\n";

$selected = $selected;
/*** loop over the options ***/
foreach( $options as $key=>$option )
{
    /*** assign a selected value ***/
    $select = $selected==$key ? ' selected' : null;

    /*** add each option to the dropdown ***/
    $dropdown .= '<option value="'.$key.'"'.$select.'>'.$option.'</option>'."\n";
}

/*** close the select ***/
$dropdown .= '</select>'."\n";

/*** and return the completed dropdown ***/
return $dropdown;
}
?>

<form>

<?php
$name = 'my_dropdown';
$options = array( 'dingo', 'wombat', 'kangaroo' );
$selected = 1;

echo dropdown( $name, $options, $selected );

?>
</form>
函数下拉列表($name,array$options,$selected=null)
{
/***开始选择***/
$dropdown=''。\n“;
$selected=$selected;
/***在选项上循环***/
foreach($key=>$option的选项)
{
/***指定一个选定的值***/
$select=$selected==$key?'selected':空;
/***将每个选项添加到下拉列表中***/
$dropdown.='.$option.'.'.\n“;
}
/***关闭选择按钮***/
$dropdown.=''。“\n”;
/***并返回已完成的下拉列表***/
返回$dropdown;
}
?>
运行此代码后,所有内容都正确显示,但通过更改selected的值,selected选项不正确

问题是,它的表现是这样的
wombat

但实际上应该是这样的
wombat


请建议我如何解决此问题

有些浏览器使用
selected=true
,有些浏览器只是
selected
。 两种方法都可以使用。
所以不要在Firebug或其他东西中检查它,因为这可能是其他东西,而实际的代码是什么。 试一试


另外,您可以省略
$selected=$selected

这不是问题。这只是属性的浏览器表示。什么是错误的-应该选择什么值,选择什么?
$selected=$selected-这没有意义。我应该将
:null
替换为
:''
。实际上它没有选择正确的值,因为,selected=“”显示在代码中,并且错误地显示了值。请通过将$selected的值更改为0或2来运行上述程序。那你就知道确切的问题了
$select = $selected==$key ? ' selected="true" selected' :  "";