javascript - Dropdown populated returned "undefined" in the dropdown options -
i trying list of city names based on selected state in dropdown list getting "undefined" in dropdown options. think wrong in javascript code don't know is.
my ajax function:
function getcities(obj) { var stateid = obj.val(); $.ajax({ url:base_url+'home/get_cities', type:'post', data:{ 'state_id':stateid}, success:function(response){ var temp = $.parsejson(response); if(temp.status == 'success') { var cities = temp.data; var opts = ''; var optsli = ''; $.each(cities,function(key,value){ opts+='<option value="'+value.id+'">'+value.name+'</option>'; optsli+='<li data-raw-value="'+value.id+'" class="">'+value.name+'</li>'; }); $("#city").html(opts); $("#city").next(':eq(0)').next().html(optsli); } else { return false; } } }); }
my controller function in home.php file:
public function get_cities() { $state_id = $this->input->post('state_id'); $results = $this->common_model->get_cities($state_id); if( count($results) > 0 ) { $response['status'] = 'success'; $response['data'] = $results; } else { $response['status'] = 'error'; $response['data'] = ''; } echo json_encode($response); // exit; }
my function in model:
function get_cities($state_id) { $response = array(); $this->db->where('state_id',$state_id); $query = $this->db->get('cities')->result_array(); if( is_array( $query ) && count( $query ) > 0 ) { $response['0'] = 'select city'; foreach($query $row) { $response[$row['id']] = $row['name']; } } return $response; }
my dropdown list state , city in view:
<div class="form-group"> <?php echo form_label('state', 'state'); ?> <div class="selectpickercolm personal clearfix"> <div class="slctn"> <?php echo form_dropdown('state', $states, $user['state'],array('id' => 'state','class' => 'form-control','onchange' => 'getcities($(this))')); ?> </div> </div> </div> <div class="form-group"> <?php echo form_label('city', 'city'); ?> <div class="selectpickercolm personal clearfix"> <div class="slctn"> <?php echo form_dropdown('city', $cities, $user['city'],array('id' => 'city','class' => 'form-control')); ?> </div> </div> </div>
do below:-
function getcities(obj) { var stateid = obj.val(); $.ajax({ url:base_url+'home/get_cities', type:'post', datatype:'json', //change here data:{ 'state_id':stateid}, success:function(response){ var temp = response; //change here if(temp.status == 'success') { var cities = temp.data; var opts = ''; var optsli = ''; $.each(cities,function(key,value){ opts+='<option value="'+key+'">'+value+'</option>'; //optsli+='<li data-raw-value="'+value.id+'" class="">'+value.name+'</li>'; }); $("#city").html(opts); //$("#city").html(optsli); } else { return false; } } }); }
Comments
Post a Comment