搜索表单如何传递input的值?
我写了这个一个搜索的表单<form id="search" method="post" action="<?php echo base_url()."search/"; ?>"> <div style="margin-top:10px;">
<input type="text" name="s" class="text" size="60">
<input type="submit" class="submit" value="Search">
</div>
</form>
现在我点击搜索打开的是地址是:http://d.hbdx.cc/search/
没有把input里面的内容传递到URL中
我希望的是搜索“音乐”,就打开http://d.hbdx.cc/search/音乐
我将method="post"改为method="get"后打开的URL是:http://d.hbdx.cc/search/?s=音乐
怎么才可以设置成http://d.hbdx.cc/search/音乐 本帖最后由 dren_a 于 2013-10-13 21:55 编辑
稍微写下:
//search方法有双重用途:显示搜索页面和显示搜索结果
public function search($keyword="fuck_you") //应该没有人搜这个带着下划线的奇葩词吧
//如果url传过来的参数中有后面那个参数:“/search/xxxx”,将这个值赋给$keyword;若没有参数,即“/search”,赋予$keyword值“fuck_you”
{
if ($keyword == "fuck_you") { //
$this->load->view('search'); //若$keyword的值是"fuck_you",显示搜索前界面
} else { //若不是
$data['result'] = $this->_search_keyword($keyword); //调用下面那个私有方法,返回搜索结果,赋予$data['result']。如果看不懂建议看文档。
$this->load->view('search_result',$data); //将数据传给search_result视图,显示出搜索结果
}
}
private function _search_keyword($keyword)
{
........... //搜索功能代码
return "xxxx"; //进行搜索过程,返回搜索结果
}
前端使用js:
//此段需要jQuery
$('#button').click(function(){
$('#button').attr('href','http://d.hbdx.cc/search/'+$('input#keyword').text);
});
放弃自带表单功能,自己构建。当然,别忘了xss过滤哦。
**以上结果纯手打,如果错误,自己改吧......**
**2013-10-13 21:54:58 改** dren_a 发表于 2013-10-13 19:54 static/image/common/back.gif
稍微写下:
我没有看的很懂啊 大侠
意思是自带的表单实现不了我要的功能 是么?
在search的视图里面自己写一个INPUT 和 一个BUTTON
然后BUTTON的单击调用你写的JS去修改返回的URL从而调用控制器么?
那在这个视图里是不是要引用JQuery库啊
解决了 谢谢楼上的大侠提供思路
最后的做法是
<center>
<div style="margin-top:10px;">
<?php
$this->load->helper('form');
$input = array('name' => 's','size' => '60','class' => 'text','value' => '','id' =>'input');
echo form_input( $input );
$search = 'onClick="Search()"';
echo form_button('Search', 'Search', $search);
?>
</div>
<script>
function Search()
{
var home= "<?php echo base_url(); ?>";
var input = document.getElementById("input");
window.location.href = home + "search/" + input.value;
}
</script>
</center> dolphin 发表于 2013-10-13 20:04 static/image/common/back.gif
我没有看的很懂啊 大侠
意思是自带的表单实现不了我要的功能 是么?
对,使用jQuery。
自带的表单是不通过url提交的。
其实还有其他思路:表单提交以后,在输出搜索结果的时候,在url中输出这个查询词就可以了,这就需要一个单独的function用于显示页面、在url中显示查询词。 dolphin 发表于 2013-10-13 20:49 static/image/common/back.gif
解决了 谢谢楼上的大侠提供思路
最后的做法是
你这个混写的手法好奇葩啊。。。应该不符合MVC规范吧。。。貌似在控制器中直接就输出了HTML?
建议看视频学习,学的很快的。
我把我的那段代码加上注释吧,估计你就明白了。
页:
[1]