Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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
PHP中的选定字段_Php_Select - Fatal编程技术网

PHP中的选定字段

PHP中的选定字段,php,select,Php,Select,我有一个选择框,用户从下拉列表中选择性别,他们的选择在选择标签中用“selected”指定。但盒子总是以“选择”结尾。以下语法有什么错误 echo"<select name='sex'> <option value='N' '". ($info['sex'] == "N" ? 'selected=selected':'') ."'>Choose</option> <option value='M' '". ($info['sex'] == "M" ? '

我有一个选择框,用户从下拉列表中选择性别,他们的选择在选择标签中用“selected”指定。但盒子总是以“选择”结尾。以下语法有什么错误

echo"<select name='sex'>
<option value='N' '". ($info['sex'] == "N" ? 'selected=selected':'') ."'>Choose</option>
<option value='M' '". ($info['sex'] == "M" ? 'selected=selected':'') ."'>Male</option>    
<option value='F' '". ($info['sex'] == "F" ? 'selected=selected':'') ."'>Female</option> 
</select>";
echo”
选择
男性的
女的
";

$info['sex']
来自一个始终返回N、M或F的查询SQL。

您的
selected=selected
被引用并输出如下

<option value='N' 'selected=selected'>

运行代码时,请使用以下命令

echo"<select name='sex'>
<option value='N' ". ($info['sex'] == "N" ? 'selected=\'selected\'':'') .">Choose</option>
<option value='M' ". ($info['sex'] == "M" ? 'selected=\'selected\'':'') .">Male</option>    
<option value='F' ". ($info['sex'] == "F" ? 'selected=\'selected\'':'') .">Female</option> 
</select>";
echo”
选择
男性的
女的
";
注意
'selected=\'selected\'
处的转义引号,以及
处缺少单引号($info['sex']
>

演示:


这里有一把小提琴显示了您有问题的输出:

您的
selected=selected
被引用并输出如下

<option value='N' 'selected=selected'>

运行代码时,请使用以下命令

echo"<select name='sex'>
<option value='N' ". ($info['sex'] == "N" ? 'selected=\'selected\'':'') .">Choose</option>
<option value='M' ". ($info['sex'] == "M" ? 'selected=\'selected\'':'') .">Male</option>    
<option value='F' ". ($info['sex'] == "F" ? 'selected=\'selected\'':'') .">Female</option> 
</select>";
echo”
选择
男性的
女的
";
注意
'selected=\'selected\'
处的转义引号,以及
处缺少单引号($info['sex']
>

演示:

这里有一把小提琴,显示您有问题的输出:

应该是:

selected=\"selected\"
应该是:

selected=\"selected\"

我真的不知道这是否是答案,但试试这个:
”($info['sex']==“N”)?('selected=\'selected\'':(NULL))。“


还要查看是否标记了autocomplete=“off”或按ctrl+f5几次才能确定。我过去经常遇到这种情况,我不知道这是否是答案,但请尝试以下方法:
”($info['sex']==“N”)?('selected=\'selected\'':(NULL))。“


另外,请查看是否标记了autocomplete=“off”或按ctrl+f5几次以确定。过去我经常遇到这种情况。首先,请尽量避免这种编码方式,并在HTML中包含PHP,而不是以其他方式

例如,可以这样做:

<?php
$sex = "F"; //mockup data from DB
?>

<select>
        <option <?= $sex=="M" ? "selected='selected'" : "" ?> value='M' >Male</option>
        <option <?= $sex=="F" ? "selected='selected'" : "" ?> value='F' >Female</option>
</select>


首先,尽量避免这种编码方式,并在HTML中包含PHP,而不是以其他方式

例如,可以这样做:

<?php
$sex = "F"; //mockup data from DB
?>

<select>
        <option <?= $sex=="M" ? "selected='selected'" : "" ?> value='M' >Male</option>
        <option <?= $sex=="F" ? "selected='selected'" : "" ?> value='F' >Female</option>
</select>


如果
$info['sex']
为N或M或F

    echo "<select name=\"sex\">
    <option value=\"N\" ". ($info['sex'] == "N" ? "selected=\"selected\"" : "") .">Choose</option>
    <option value=\"M\" ". ($info['sex'] == "M" ? "selected=\"selected\"" : "") .">Male</option>    
    <option value=\"F\" ". ($info['sex'] == "F" ? "selected=\"selected\"" : "") .">Female</option> 
    </select>";
echo”
选择
男性的
女的
";

注:在HTML中使用单引号是有效的,但这是一个坏趋势,就像贾斯汀·比伯林一样。

如果
$info['sex']
是N或M或F

    echo "<select name=\"sex\">
    <option value=\"N\" ". ($info['sex'] == "N" ? "selected=\"selected\"" : "") .">Choose</option>
    <option value=\"M\" ". ($info['sex'] == "M" ? "selected=\"selected\"" : "") .">Male</option>    
    <option value=\"F\" ". ($info['sex'] == "F" ? "selected=\"selected\"" : "") .">Female</option> 
    </select>";
echo”
选择
男性的
女的
";


备注:单引号在HTML中使用是有效的,但它与贾斯汀·比伯林(justin biebering)一样是一种不好的趋势。

是否返回正确的结果?
是否查看了源代码以确保其中一个选项显示“selected=selected”?引号并不重要。
$info['sex']
返回正确的结果?您是否查看了源代码以确保其中一个选项显示“已选择=已选择”?引号并不重要。尽管最好用引号括起来-它不会改变任何事情:@zerkms true,但它输出的html看起来像OP的其余代码,如
value='N'
,干净一致的输出代码是我的目标…它确实是一致的,但根本解决不了问题all@zerkms然后回答the问你自己。这是错误,我的答案解决了它。我添加了一个演示的链接…1.你的答案无法解决它,因为引号实际上不会改变任何东西2.如果没有额外的细节,回答问题是不可能的。--这也行得通。因此,不是答案,即使最好用引号括起来-它不会改变nge anything:@zerkms true,但它输出的html看起来像OP的其他代码,比如
value='N'
,干净一致的输出代码是我的目标……它确实是一致的,但根本解决不了问题all@zerkms然后自己回答这个问题。这是错误,我的答案解决了它。我已经添加了一个到演示的链接…1。哟你的答案无法解决这个问题,因为引号不能改变任何东西2.如果没有额外的细节,回答这个问题是不可能的。--这同样有效。因此,在php 5.2之前,使用
快捷方式的回答者在传输此代码时可能会中断,你必须启用/安装它才能工作…这不是一个bug,只是一些问题要知道…是的,这是真的。更准确地说,在PHP5.3中“short\u open\u tag=On”必须在php 5.4中的php.ini中设置它已被更改,并且此语法始终有效。在php 5.2之前,使用
快捷方式可能会在传输此代码时中断,您必须启用/安装它才能工作…这不是一个bug,只是需要注意…是的,这是真的。更准确地说,在php 5.3中“short\u open\u tag=On”必须在php 5.4中的php.ini中设置它已被更改,并且此语法始终有效。使用单引号或双引号并不重要,只要它不是这样的:“selected=selected”它应该是这样的:selected=selected或selected=“selected”或selected='selected'只要不是这样,使用单引号或双引号都无所谓:“selected=selected”它应该是这样的:selected=selected或selected=“selected”或selected='selected'