我有一个简单的表单,用户添加了一种行为。然后保存它。
然后他们可以返回并编辑它。当他们返回编辑时,我希望他们正在编辑的行为类型在表单下拉列表中显示为选中状态。
我使用一个函数来打印下拉框,并尝试将当前变量发送到函数中以检查和修改结果。希望有意义!
问题是函数
中没有看到变量$row[act_type]
无论如何,这是我调用函数的方式($ row [act_type]存在):
edit_act_types('<?=$row[act_type]?>');
然后打印我正在使用的下拉列表:
function edit_act_types($actType) {
$mysqli = dbConnect(); // connect with db
$query_actTypes="SELECT * FROM actTypes order by actType";
$result_actTypes = $mysqli->query($query_actTypes);
echo '<select class="form-control" id="type" name="type"><option value="">'.$actType.' Select...</option>';
while($row_actType = $result_actTypes->fetch_array()){
if($actType==$row_actType['actTypes_id']) {
$selected = 'selected="selected"';
}
echo '<option value="'.$row_actType['actTypes_id'].'" '.$selected.'>'.$row_actType['actType'].'</option>';
}
echo '</select>';
};
答案 0 :(得分:1)
该函数在php标签中调用
<?php
edit_act_types($row[act_type]);
?>
所以<?=$row[act_type]?>
- 无效
答案 1 :(得分:1)
您的代码中包含以下行:
edit_act_types('<?=$row[act_type]?>');
我不确定你要用上述内容实现的目标。 <?=$row[act_type]?>
部分将被视为一个字符串,并作为函数参数而不是实际变量传递。调用函数时不需要使用PHP标记。
考虑以下代码:
header('Content-Type: text/plain');
function foo($bar) {
echo $bar;
}
$var = 'hello';
foo('<?=$var?>');
output将是<?=$var?>
,而不是hello
。
因此,您的函数调用应如下所示:
edit_act_types($row['act_type']);
阅读PHP手册中有关Functions的更多信息。