【发布时间】:2012-11-20 16:16:11
【问题描述】:
我有一个带有 4 个下拉菜单和一个提交按钮的表单。当用户单击提交按钮时,我想转到我的控制器处理输入/输出,为用户提供选择,但使用正确的 URI。
下拉列表是根据用户的选择从 Ajax 动态生成的,第一个下拉列表除外。他们工作得很好。
处理用户输入的方法位于这个控制器中:/app/controllers/shop/kategorier,索引方法如下所示:
public function index($fabrikat, $type, $model, $produktnr = '0')
{
// get all the data from the model
$data['all'] = $this->fetch->get_kategorier($fabrikat, $type, $model, $produktnr);
print_r($data['all']);
}
我的目标是:当用户点击提交按钮时,我不希望他们查看具有该确切 URL 的页面包括参数,例如。 http://app.com/shop/kategorier/index/LG/WASH/FL9834X/0/这就是我真正想要的。
注意:手动访问此 URL 可以正常工作,并且控制器/模型会按应有的方式处理参数。
如何做到这一点?我尝试了两件事,他们都失败了。有点。
我尝试使用 jQuery,并生成了一个包含所有 带有“/”分隔符的参数,并更改了 .attr('href') on 提交。但那是一场噩梦,因为一些 $model 可以 例如。
'CE1000C-T / XEE'等我尝试在类别中创建一个“代理”方法 控制器获取所有输入->帖子并将它们附加到
redirect('kategorier/'.$fabrikat.'/'.$etc),但那是相当的 笨蛋。
我宁愿不使用 /kategorier?fabrikat=LG&type=WASH 等查询字符串
我的表单如下所示:
<?php echo form_open('shop/kategorier/'); ?>
<select id="fabrikat" name="fabrikat">
<option name="0">Vælg Fabrikat</option>
<?php foreach ($fabrikater as $f) : ?>
<option value="<?php echo $f->Fabrikat; ?>" name="<?php echo $f->Fabrikat; ?>"><?php echo $f->Fabrikat; ?></option>
<?php endforeach; ?>
</select>
<select id="type" name="type">
</select>
<select id="model" name="model">
</select>
<div id="produktnummer-wrap" style="display:none">
<select id="produktnummer" name="produktnummer">
<option name="0" value="">Vælg Produktnummer</option>
</select>
</div>
<?php echo form_submit('findparts', 'Find Reservedele'); ?>
<?php echo form_close(); ?>
我相信我在某种程度上把事情复杂化了,但现在我想不通。我将非常乐意详细说明任何事情。 我真的希望有人能够帮助我,在此先感谢。
【问题讨论】:
标签: php forms codeigniter url uri