Php 如何选择<;选择>;来自数据库的语句?
我不太确定如何正确地表达这个问题,但这只是出于兴趣而已。我经常不得不从数据库加载信息,并用值预先填充表单。因此,对于文本框,很简单,我只需设置值:Php 如何选择<;选择>;来自数据库的语句?,php,mysql,html,database,Php,Mysql,Html,Database,我不太确定如何正确地表达这个问题,但这只是出于兴趣而已。我经常不得不从数据库加载信息,并用值预先填充表单。因此,对于文本框,很简单,我只需设置值: 使用输出中所需的数据创建一个数组。绕着它转。为其中的每个项目生成一个option元素。作为对Quentin的补充(只是一些帮助您的代码),我也倾向于使用数组,如下所示: <select name="myval"> <?php $options = array( "1" => "O
使用输出中所需的数据创建一个数组。绕着它转。为其中的每个项目生成一个option元素。作为对Quentin的补充(只是一些帮助您的代码),我也倾向于使用数组,如下所示:
<select name="myval">
<?php
$options = array(
"1" => "One",
"2" => "Two"
);
foreach ($options as $value => $text) {
echo '<option value="' . $value . '"' . ($myval == $value ? ' selected' : '') . '>' . $text . '</option>';
}
?>
</select>
有很多方法可以让代码更干净。找到一个或发明自己的:)
对于select语句,我喜欢使用实用程序方法。例如:
<?= HTML::createSelect($name, $actualvalue, $optionslist, $passthrough) ?>
那条线上有东西。从数据库中读取选项列表和实际值。Passthrough用于添加HTML装饰符,例如id、类等。对于这种重复输出,最简单的方法是自己编写一个函数,例如:
function selectbox(array $options, $name, $value = null) {
$out = '<select name="' . $name . '">';
foreach($options as $key => $text) {
$out .= '<option value="' . $key. '"' . ($key == $value ? ' selected="selected"' : null) . '>' . $text . '</option>';
}
return $out . '</select>';
}
函数选择框(数组$options,$name,$value=null){
$out='';
foreach($key=>$text形式的选项){
$out.=''.$text.'';
}
退回$out.';
}
如果语句不愚蠢
在这种情况下,对于这样一个简单的任务来说似乎有点长而且没有意义。我认为您指定的最后一个选项更好这就是我所做的,但我还有一个函数,我将它传递给它,在参数中,我传递我感兴趣的ID,如果行匹配,我加入选择的标记+是的,问我问题的目的是看看别人做了什么。但是我以前从未见过这个-我会查一下。我找不到任何关于HTML::createSelect??这是你自己的函数吗?当然,这是我写的一个方法。这只是一个例子。大多数MVC框架都有类似的“表单助手”来生成表单元素。使代码看起来更干净,你做的更少。@tehlulz我不是在寻找答案,只是建议,如果你看代码本质上与我的相同。@Chud37不,不是这样,你对每个选项都使用if语句,这个答案中的循环只有一个one
if,并循环所有选项。。
<select name="myval">
<?php
$options = array(
"1" => "One",
"2" => "Two"
);
foreach ($options as $value => $text) {
echo '<option value="' . $value . '"' . ($myval == $value ? ' selected' : '') . '>' . $text . '</option>';
}
?>
</select>
<?= HTML::createSelect($name, $actualvalue, $optionslist, $passthrough) ?>
function selectbox(array $options, $name, $value = null) {
$out = '<select name="' . $name . '">';
foreach($options as $key => $text) {
$out .= '<option value="' . $key. '"' . ($key == $value ? ' selected="selected"' : null) . '>' . $text . '</option>';
}
return $out . '</select>';
}