This is the first time I am working with CI+AJAX+JSON.
I have a controller Admin.php inside controllers directory of Codeigniter. The controller code is as under:
public function getmylist()
{
$users_arr[] = array("sno" => "1", "myname" => "hello");
echo json_encode($users_arr);
}
Then, in views, I have a view with the following code:
<select class="form-control" name="mod_countries" id="mod_countries">
<?php
if(isset($countrylist))
foreach($countrylist as $c)
echo "<option value=" . $c->cname . ">".$c->cname;
?>
</select>
Then my target select which i need to populate from ajax is
<select class="form-control" name="mod_newlist" id="mod_newlist">
</select>
My ajax is as under:
$(document).ready(function() {
$('#mod_countries').change(function(event) {
var cname = $("select#mod_countries").val();
alert(cname);
$.ajax({
type: "post",
url: "<?php echo base_url(); ?>" + "Admin/getmylist",
dataType: "json",
data: {mcname: cname},
success: function(res){
if(res) {
var len=res.length;
$("#mod_newlist").empty();
for(var i=0; i<len; i++)
{
var sno=res[i]['sno'];
var myname=res[i]['myname'];
$("#mod_newlist").append("<option value='" + sno + "'>"+myname+"</option>");
}
}
else
{
console.log('hitting');
}
},
error: function(res, status, error) {
var err = res.responseText;
alert(res.Message);
alert(status);
alert(error);
}
});
});
});
When I select an item from the first dropdown list, I get the selected item. Now I expect the second drop downlist to get an item from the controller's code. but, my code goes into error block and alert shows following error messages for each alert line of code:
undefined
parsererror
SyntaxError: Unexpected token I in JSON at position 0
Please tell me where I am making a mistake?
Also, please help with regards to how should I return the sno->name pair from model because at lat, i want to populate the new select from database.