![](/img/trans.png)
[英]Pass select value to controller without refreshing the page (AJAX, RAILS, JS)
[英]Get dropdown value when selected and pass it to controller without refreshing the page
我有2个下拉列表,CATEGORY和SUBCATEGORY。 SUBCATEGORY取决于在CATEGORY上选择的值。 我想做的就是获取值id并将其传递给我的控制器。 在控制器中获取值后,将其发送到我的模型,所有与CATEGORY_ID等效的数据都将显示在SUBCATEGORY中。 我怎样才能做到这一点? 我一直在使用javascript获取更改下拉列表的值。 我正在尝试使用Ajax,但没有运气。 它处于引导模式。
例:
类别=食品
子类别=蛋糕,蔬菜。 水果等
类别=体育
子类别=篮球,排球等
这是我在modal(view)中的两个下拉列表:
类别
<select name='category_uuid' id="category_uuid">
<?php
foreach($categories as $categories):
if ($form_action=="update") {
echo "<option value='".$category_uuid."' ".(($category_uuid == $categories->uuid) ? 'selected':'').">".$categories->name."</option>";
}else{
echo "<option value='".$categories->uuid."'>".$categories->name."</option>";
}
endforeach; ?>
</select>
我的脚本
<script>
$("#category_uuid").change(function(){
$.ajax({
type : 'POST',
data : 'cat_id='+ $("#category_uuid").val(),
url : 'questions/form',
success : function(data){
$('#data').val(data);
}
});
});
</script>
子类别
<select name="subcategory_uuid" id="subcategory_uuid">
<?php
foreach($subcategories as $subcategories):
if ($form_action=="update") {
echo "<option value='".$subcategory_uuid."' ".(($subcategory_uuid == $subcategories->uuid) ? 'selected':'').">".$subcategories->name."</option>";
}else{
echo "<option value='".$subcategories->category_uuid."'>".$subcategories->name."</option>";
}
endforeach; ?>
</select>
试试这个,您可能需要相应地进行更改:
您的Js:
$("#category_uuid").change(function(){
$.ajax({
type : 'POST',
data : { cat_id : $("#category_uuid").val() } ,
url : '<?=base_url()?>questions/subCat',
success : function(data){
$('#subcategory_uuid').val(data);
}
});
});
您的控制器:
function subCat(){
if( $this->input->post( null ) ){
$id = $this->input->post('cat_id', true);
$data['cat'] = $this->model->get_all_sub_categories( $id );
echo $this->load->view('ajax_categories', $data, true );
}
}
您的模型:
function get_all_sub_categories( $id ){
return $this->db->select('id, name')->where_in('column_id', $id)->get('table_name')->result_array();
}
您的看法ajax_categories
:
if( isset( $cat ) && is_array( $cat ) && count( $cat ) > 0 ){
foreach( $cat as $key => $each ){
echo '<option value="'.$id.'">'.$name.'</option>';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.