代码之家  ›  专栏  ›  技术社区  ›  StudioTime

将变量推入函数以检查是否存在-PHP

php
  •  0
  • StudioTime  · 技术社区  · 12 年前

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

    然后他们可以回去编辑。当他们回去编辑时,我希望他们正在编辑的动作类型在表单的下拉列表中显示为选中的。

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

    问题是变量 $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>';
    };
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   vishal shah    12 年前

    该函数在php标记中调用

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

    所以 <?=$row[act_type]?> --不会起作用

        2
  •  1
  •   Amal Murali    12 年前

    您的代码中有以下行:

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

    阅读更多关于 Functions 在PHP手册中。

    推荐文章