如何使用Ajax进程显示来自控制器/模型的数据
How to display the data came from controller/model using Ajax process?
我有一个关于ajax的问题。实际上,我是使用Ajax的初学者,这就是为什么我不能找出我的问题。我有一个有4个选择框的表单。初始或主选择框是国家选择器。其次是邦,其次是市,最后是村。我的目标是这样的。在用户选择他的国家后,第二个选择框的状态将根据用户的国家自动改变。在选择了州之后,它会自动改变城市,最后是村庄。它就像一个动态地址字段。我正在使用codeigniter。我是这么做的。这是获取状态的过程。
在我的PHP表单中,我有这个:
<tr>
<td><label style="font-weight: normal">State / Province: </label></td>
<td >
<select class="form-control" name="c_state" id="c_state">
<option value="">--Select State--<option>
</select>
</td>
</tr>
<tr>
<td><label style="font-weight: normal">Country: </label></td>
<td >
<select class="form-control" name="c_country" id="c_country">
<option value="">--Select Country--</option>
<?php
foreach($countries as $country){
if($country['country'] == 'Philippines'){
echo "<option value='".$country['code']."'selected='selected'>".$country['country']."</option>";
}else{
echo "<option value='".$country['code']."'>".$country['country']."</option>";
}
}
?>
</select>
</td>
</tr>
....
$("#c_country").on('change',function(){
var c_country = $("#c_country").val();
var var_country_selection = '<?php echo site_url("alliance_controller/get_provinces/'+c_country+'"); ?>';
console.log(c_country);
$.ajax({
type: 'POST',
url: var_country_selection,
data: { id: $(this).val() },
dataType: 'json',
success: function(d){
alert(d['c_country']);
}
});
});
在我的控制器中,我有这个:
public function get_provinces($id){
$country = $this->alliance_model->hhj_provinces($id);
echo json_decode($country);
}
在我的模型中,我有这个:
public function hhj_provinces($id) {
$query = "SELECT * FROM ref_region_province WHERE country_code = '".$id."'";
$result = $this->db->query($query);
echo json_encode($result->result_array());
}
success in jquery的输出是'undefined'。我还在Chrome中使用开发人员工具,我查看了网络选项卡,它显示了我的ajax的URL和代码。但是在我的预览中,我有这样的内容。
[]
No Properties
就这些了。我只想获得所选国家的状态
你必须在控制器中返回一个JSON对象,像这样
public function get_provinces(){
$id = $this->input->post('id');
$country = $this->alliance_model->hhj_provinces($id);
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode( $country));
}
then in View
$.ajax({
type: 'POST',
url: var_country_selection,
data: { id: $(this).val() },
dataType: 'json',
success: function(data){
$.each(data, function (key, value) {
console.log(value.field)
}
});
相关文章:
- 将不在模型中的数据返回到mvc控制器
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- 概念验证模型控制器调用正确的实例
- 如何从其他控制器更改角度模型值
- 如何在打开模型时动态加载控制器文件
- 如何从另一个控制器更新控制器的ng重复模型
- 控制器内部无法访问Angular js输入模型
- 将视图链接到模型并将视图链接至控制器的代码位于何处
- 一个控制器如何在 Ember .js 中观察任意控制器/模型上的事件
- Angularjs 绑定 2 指令将模型范围限定为父控制器模型
- 角度文件上传指令不更新控制器模型
- 在javascript中阅读弹簧控制器模型
- UI-select2 内部指令未更新控制器模型
- EmberJS:基于另一个属性重新加载控制器模型的最佳方法
- AngularJS -在指令中改变控制器模型
- 如何在javascript中获取springmvc控制器模型键值
- 使用controllerAs语法通过$watch指令更改父控制器模型
- 使用控制器模型向数组中添加对象
- 如何使用Ajax进程显示来自控制器/模型的数据