我有两个动作,如:
功能getNews
:获取列表新闻。
功能searchNews
:根据关键字获取列表新闻。
我创建了一个表单来提交:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form id="getNew" action="<?php echo admin_url('Xpathnews/searchKeyword') ?>" method="post">
<div class="col-md-12 col-sm-12 col-xs-12">
<h4><b>Select your news</b></h4>
<select id="selectcate" name="selectcate" class="field-custom">
<option value="http://theverge.com">The Verge</option>
<option value="http://neowin.net">Neowin</option>
</select>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<h4><b>Keyword:</b></h4>
<input name="search_keyword" id="search_keyword" autocomplete="off" placeholder="Enter your keyword..." />
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<input name="xpath_title" id="xpath_title" type="hidden" />
</div>
<br>
<div class="col-md-12 col-sm-12 col-xs-12 text-center">
<input name="get_news" type="submit" id="get_news" value="Get News"/>
</div>
</form>
&#13;
或小提琴链接:https://jsfiddle.net/f7zy0694/2/
我希望用户在文本框search_keyword
中键入任何文字。将执行操作searchNews
。
通常,用户只需点击按钮Get News
默认执行操作getNews
。
我在我的控制器/操作中尝试了一个解决方案:
public function getNews(){
$xpath_title = $this->input->post('xpath_title');
}
public function searchNews() {
$keyword = $this->input->post('search_keyword');
if(empty($keyword)) {
$this->getNews();
} else {
// execute my code at here
}
}
...检查$keyword
是否有价值它会执行函数$this->getNews
,但问题是:
我隐藏了一些<input>
,似乎调用了函数getNews
它无效。
我也试过了seft:redirect("/getNews")
。
感谢。
答案 0 :(得分:4)
您可以将Jquery
ajax
与keyUp
或keyDown
一起使用:
$(document).ready(function(){
$('#searchbox_id').keyUp(function(){
// get the user entered string
var searchTxt = $(this).val();
$.ajax({
url: 'process_file.php',
type: 'get',
data: {
searchTxt :searchTxt
},
success: function(response){
// do your stuff here
}
});
});
});