我正在使用高级过滤器功能,用户可以根据选定的类别过滤发布的结果。
我想要这样的网址:https://localhost/unairevent/event/list_event/category[] = 2 & category[] = 40
(URL中的类别字符串来自用户使用多选选择的过滤器选项)
如何根据用户选择的过滤器选项向URL添加字符串?
我尝试过使用这样的方法:
<section class="box text-center">
<?php
$sort = $this->input->post('sort');
$category = $this->input->post("get_kategori_acara_css[]");
$interest = $this->input->post("get_interest_acara_css[]");
?>
<?php echo form_open("acara/list_acara/".$category);?>
<div class="form-inline">
<p>Advanced Sort & Filter</p>
<div class="form-group">
<select class="form-control" name="sort">
<option selected="selected" disabled="disabled" value="">Sort By </option>
<option value="acara.id_acara">Newest</option>
<option value="hits_acara.hits">Trending</option>
<option value="tanggal_mulai_acara">Upcoming</option>
</select>
</div>
<div class="form-group">
<?php echo form_dropdown('', $get_checkbox_kategori, '', $get_kategori_acara_css); ?>
</div>
<div class="form-group">
<?php echo form_dropdown('', $get_checkbox_interest, '', $get_interest_acara_css); ?>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
<?php echo form_close();?>
</section>
但是这样的显示错误:
消息:数组到字符串的转换
显示错误图片
高级滤镜图片
答案 0 :(得分:0)
音乐会和会议下拉列表名称作为数组可以包含多个选定的值。
<select multiple name="concert[]" >
在PHP端打印Concert数组将显示所有选定的值。
答案 1 :(得分:0)
您可以使用GET参数代替URL段。初始测试应通过URL完成,一旦完成测试,请尝试从客户端发送参数,如JavaScript
示例:
使用Codeigniter,您可以像这样:
$this->input->get('category');
/* This will return value - 1,2,3,4 */
现在您可以按逗号分割并推送到数组。
$category_array = explode(",", $this->input->get('category'));
为了保持输入选择会话,您可以使用此方法
<?= (in_array("name_of_cat", $category_array)) ? "selected" : "" ?>
答案 2 :(得分:0)
您无法获得这样的网址
https://localhost/unairevent/event/list_event/category[] = 2&类别[] = 40
代替这些 在list_event方法的事件控制器处...使用get方法时可以拥有这些东西...比url应该是 https://localhost/unairevent/event/list_event?category[]=2&category[]=40
并进行更改
$category = $this->input->post("get_kategori_acara_css[]");
$interest = $this->input->post("get_interest_acara_css[]");
到..似乎只有概率
$category = $this->input->post("get_kategori_acara_css");
$interest = $this->input->post("get_interest_acara_css");
如果您之前将变量$ category和$ interest设置为数组,则它们将为数组...
尝试调试错误,然后...在设置变量后添加这些..
var_dump($category);
var_dump($interest);
如果它向您显示字符串...就可以了...一切都很好...删除var_dump并玩得开心..否则..检查它...为什么将它作为数组获取..将那些东西作为字符串传递...
在您看来..更改这两件事...将您的sort
更改为sort[]
并可以使用..
<select class="form-control" name="sort[]" multiple>