Codeigniter:如果未从控制器返回数据,则为文本输入字段的默认值

时间:2015-09-21 10:20:52

标签: javascript php jquery html codeigniter

我有一个文本输入,它由来自控制器传递的数据库中的值填充。我就是这样做的:

<input type="text" class="form-control" id="groupname" name="groupname" disabled value="<?php foreach ($result as $r) {
    echo $r->group_name;
};?>"/> <br>`

单击搜索按钮并且其运行良好后,应执行此代码。我的问题是,每次加载视图时,加载此输入字段意味着执行此代码,因为我没有搜索任何内容,它给了我一个错误。如何默认情况下将输入框的默认值设置为null / empty,或者如果控制器没有返回任何值。

我是新手。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您可以通过检查数组来检查是否执行了搜索

<input type="text" class="form-control" id="groupname" name="groupname" disabled value="<?php if(isset($result) && !empty($result)){ foreach ($result as $r) {
    echo $r->group_name;
} };?>"/> <br>`

解释

我在此使用if(isset($result) && !empty($result)){条件我已经检查过,如果您的搜索发生,则意味着将设置$result并且$result中必须存在某些内容。 但是,如果您只是刷新页面,则$result中没有任何值,因此它不会处理foreach循环。

答案 1 :(得分:1)

你可以试试这个:

    <input type="text" class="form-control" id="groupname" name="groupname" disabled value="
<?php 
   if(count($result)>0){ 
       foreach ($result as $r) {
          echo $r->group_name;
       }
   }?>"/> <br>

答案 2 :(得分:1)

您应该在调用该函数之前使用$result = array();设置空数组,或者您可以在foreach()中执行此操作,例如foreach((array)$result as $r) ...在此处查看更多信息:{{ 3}}