我有一个表,看起来像:
id | page_name | category
--------------------------
1 | Tornado | Air
2 | Car | Vehicles
下拉列表示例(HTML):
<select id="dropdown_categories">
<option value="Air">Air</option>
<option value="Vehicles">Vehicles</option>
</select>
我想当我选择空气时,我只会看到结果1(龙卷风)。我试过这样做:
控制器:
public function Get_Page_By_Category ( $category ) {
$data['pages_cat'] = $this->page_model->get_page_by_category($category);
}
模型:
function get_page_by_category ( $category ) {
$this->db->select('*')->from('page')->where('page.category =', $category);
$result = $this->db->get();
return $result;
}
ajax: <script type="application/javascript">
$(document).ready(function() {
$("#dropdown_categories").change(function(){
alert($('#dropdown_categories option:selected').val());
})
});
</script>
不知道如何继续,最好的方法是什么?
您应该使用ajax。像这样试试。
$(document).ready(function() {
$("#dropdown_categories").change(function(){
var val = $('#dropdown_categories option:selected').val();
$.ajax({
url: "path to controller function/value of select box present in var val",
type: "POST",
dataType: "HTML",
async: false,
success: function(data) {
alert(data)
}
});
});
});
控制器中的你可以返回值,这将在ajax的success中出现在data变量中,我已经提醒过了,你可以任意使用
你正在使用jQuery,所以你可以使用jQuery ajax。很容易。你可以使用:
var val = $('#dropdown_categories option:selected').val();
$.ajax({
url: "url",
type: "POST",
dataType: "application/json,"
data: {value: val, callback: php_function_to_call, args: [array_of_arguments_of_php_function]}
success: function(data){
document.title = data.title;
}
})
现在php:
function myFunction($arguments_if_you_have){
//get the databse result here;
//notice: ajax only returns data, when there is something sent to the output stream, so we must use echo
echo json_encode($result);
}
if(isset($_POST['callback'])){
if(isset($_POST['args'])){
call_user_func_array($_POST['callback'], $_POST['args']);
}
call_user_func_array($_POST['callback'], array());
}