Ciao a tutti, sto facendo un piccolo sito con codeigniter mi trovo in difficoltà nel gestire le chiamate json.
Praticamente voglio che selezionando una provincia si riempia una select con i comuni che appartengono a quella provincia...però sembra che il controller codeigniter con prenda correttamente la variabile post.
Ecco il codice jquery
Come vedete gli passo l'oggetto param = {"prov": idProvincia} che viene preso correttamente (ho controllato con firebu e il post è {"prov": numero}), il problema è la risposta che è sempre false. Ecco il codice php del controller:codice:var param = { "prov": idProvincia }; $.ajax({ type: "POST", url: this."sito.it/index.php/controller/filter_comuni", dataType: "json", data: JSON.stringify(param), contentType: 'application/json', success: function(response){ for(var i = 0; i < response.length; i++){ var $option = $("<option></option>"); $option.attr("value", response[i].id); $option.html(response[i].value); $('#comune').append($option); } }, error: function(jqXHR, text, error){ alert("Error! "+text); } });
e per completezza quello del model che fa la query:Codice PHP:public function filter_comuni(){
header('Content-type: application/json');
$provincia = json_decode($this->input->post("prov"));
echo json_encode($this->concert_model->get_comuni($provincia));
}
grazie a tutti!Codice PHP:public function get_comuni($provincia){
$query = $this->db->select("id, comune")
->where("id_provincia", $provincia)
->order_by("comune")
->get("comuni");
if($query->num_rows <= 0){
return FALSE;
}
$comuni = array();
foreach($query->result() as $row){
$comune = array(
"id" => $row->id,
"value" => $row->comune
);
array_push($comuni, $comune);
}
return $comuni;
}

Rispondi quotando