【问题标题】:Checkbox and search query in CodeigniterCodeigniter 中的复选框和搜索查询
【发布时间】:2011-05-17 14:59:19
【问题描述】:

我的页面是用 PHP/codeigniter 编码的,我有一个带有一些复选框的表单。当我选择几个复选框并提交表单时,我将复选框值传递给控制器​​,然后控制器决定是否选中一个复选框,将所有选中的复选框值内爆到一个数组中并使用 uri->assoc_to_uri($大批)。这就是我为搜索引擎编写过滤器的方式(有更好的方法吗?)。现在,当我再次使用复选框重新显示表单时,我希望再次选中之前选中的复选框。我该怎么做?

我最初的想法是做一个uri_>uri_to_assoc(#),找到相关键的值(即1.2.3)然后分解成一个数组$arr和类似下面的代码:

<input type="checkbox" name="price_range_4" value="<?php if($arr[4] != '') echo 'selected'; ?>">

有更快/更好的方法吗?

【问题讨论】:

    标签: php search codeigniter


    【解决方案1】:

    为什么不使用 Session Class 并将数组传递给 set_flashdata(),然后在搜索结果页面上检索它以选中复选框?

    【讨论】:

    • 注意flashdata在下次请求后过期,正常的session数据应该没问题。
    • 是的,我说 flashdata 的原因是因为我只是认为他们可能会在再次搜索一次搜索后离开,两种方式都可以正常工作。
    【解决方案2】:

    除了Darren's answer你还有另一个HTML问题:

    <input type="checkbox" name="price_range_4" value="<?php if($arr[4] != '') echo 'selected'; ?>">
    

    您要更改的不是value,而是checked 属性。像这样的:

    <input type="checkbox" name="price_range_4" value="my_value"<?php if ($should_be_checked) echo ' checked="checked"'; ?> />
    

    如果您使用的是Form helper,您可以使用form_checkbox() 函数使其更简洁:

    例子:

    echo form_checkbox('price_range_4', 'my_value', $should_be_checked);
    

    当然,$should_be_checked 可以是您决定定义的任何方式,可以使用会话数据、$_POST 数据或其他方式。

    【讨论】:

      猜你喜欢
      • 2012-05-15
      • 1970-01-01
      • 2017-11-19
      • 2018-03-21
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      相关资源
      最近更新 更多