PHP中的选定字段
我有一个选择框,用户从下拉列表中选择性别,他们的选择在选择标签中用“selected”指定。但盒子总是以“选择”结尾。以下语法有什么错误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" ? '
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'