HTML不适用于PHP函数
我想显示一个带有选定选项的标记,该选项将来自数据库。 这是我的代码:HTML不适用于PHP函数,php,html,function,html-select,Php,Html,Function,Html Select,我想显示一个带有选定选项的标记,该选项将来自数据库。 这是我的代码: <? function check($opt) { if ($rows['fa'] = $opt) { echo " selected='selected'"; } } echo $fa; ?> <select name="opt" id="opt"> <option value="o1"<? check('o1'); ?>>Option
<?
function check($opt) {
if ($rows['fa'] = $opt) {
echo " selected='selected'";
}
}
echo $fa;
?>
<select name="opt" id="opt">
<option value="o1"<? check('o1'); ?>>Option1</option>
<option value="o2"<? check('o2'); ?>>Option2</option>
</select>
问题是该函数不能处理$rows['$fa'],如果我只键入o1或o2,它就可以工作。
如果我回显$fa,它将给出数据库中的结果o1、oro2。假设已经定义了$rows
您正在使用=来比较变量,这将不起作用分配。您正在寻找==:
另外,尝试在数组索引中使用$fa而不是'fa'。我不确定这是否是您所指的:
function check($opt) {
if ($rows[$fa] == $opt) {
echo " selected='selected'";
}
}
$rows['fa']是在函数外部定义的,函数范围中没有值
其他变化:-
selected('o1', $row['fa']);
function selected($opt, $val)
{
if ($opt == $val)
{
echo " selected='selected'";
}
}
如果行数据在$fa上,设置为全局,请注意范围,比较==:
<?
function check($opt) {
global $fa;
if ($fa == $opt) {
echo " selected='selected'";
}
}
echo $fa;
?>
什么是$fa?它是在哪里定义的?我已经定义了$rows,但在函数之外,这就是它不起作用的原因。谢谢你的帮助!您在哪里定义$rows?$sql=从id='$id'的表中选择*$result=mysql\u query$sql$rows=mysql\u fetch\u assoc$result;我想你应该检查一下:我敢编辑你的代码,让它更通用。我怀疑它在如此本地化的版本中是否有任何意义。我不喜欢当老板:我只是无法让自己停止思考。我刚刚取代了OP的位置,意识到我可以使用这样一个模板助手,但是如果它是一个通用的模板助手,那么它对所有代码来说都是通用的。这是真的,但我不认为OP正在使用任何类型的框架,或者太懒了,无法为表单元素构建这样的函数。我们不是每天都要处理表单提交吗?就是这样,$rows['fa']是在函数外部定义的。现在它工作了!非常感谢。酷,它工作了!使用global,我不需要定义函数中的所有变量。太棒了,谢谢!这确实有效,而且效果很好。如果我有更多的选项,代码就有点太多了。如果你有更多的选项,你只需要调用这个代码一次,因为它应该通过数组的循环来打印
selected('o1', $row['fa']);
function selected($opt, $val)
{
if ($opt == $val)
{
echo " selected='selected'";
}
}
<?
function check($opt) {
global $fa;
if ($fa == $opt) {
echo " selected='selected'";
}
}
echo $fa;
?>