0

我有一个简单的表单,用户可以在其中添加一种行为。然后保存它。

然后他们可以返回并编辑它。当他们返回编辑时,我希望他们正在编辑的行为类型显示为在表单的下拉列表中选择。

我使用一个函数来打印下拉框,并尝试将当前变量发送到函数中以检查和修改结果。希望这是有道理的!

问题是$row[act_type]在函数内部看不到变量

无论如何,这是我调用函数的方式($row[act_type] DOES 存在):

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>';
};
4

2 回答 2

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?>');

输出将是<?=$var?>,不是hello

因此,您的函数调用应如下所示:

edit_act_types($row['act_type']);

阅读PHP 手册中有关函数的更多信息。

于 2013-10-28T12:11:15.060 回答
1

该函数在 php 标签中调用

<?php   
 edit_act_types($row[act_type]);
?>

所以<?=$row[act_type]?>——行不通

于 2013-10-28T12:08:49.097 回答