我有一张表格如下:
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>
我希望当我选择Air时,我只会看到结果1(Tornado)。 试过这样的事情:
控制器:
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>
不确定如何继续,最好的方法是什么?
答案 0 :(得分:1)
你应该使用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在数据变量中的成功,我已经在那里发出警报,你可以使用你想要的甚至
答案 1 :(得分:0)
您正在使用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());
}