我有一个像codeigniter
那样的文件夹结构 +asset
+css
+js
+jquery
jquery.js
global.js
+application
+system
所以我想你会弄清楚结构的其余部分。现在我有这样的观点:
<li>
<label>País</label>
<div>
<select name="pais" id="pais">
<option value="" selected="selected"> -- Selecciona un país</option>
<?php foreach($thesex as $pais):?>
<option value="<?php echo $pais->pais_id; ?>"><?php echo ascii_to_entities($pais->pais_descrip); ?></option>
<?php endforeach;?>
</select>
</div>
</li>
<li id="esta">
<label>Estado</label>
<div>
<select name="estad" id="estad">
</select>
</div>
</li>
我的控制器如下:
function estado_paisout()
{
$this->output->set_status_header(200);
$this->output->set_header('Content-type: application/json');
$done = $this->input->post('pid');
$est = $this->Estado_model->estado_paisout($done);
echo json_encode($est);
}
我的jquery代码是:
$("#pais").change(function(){
var id = $(this).val();
$("#esta").show();
$.ajax({
type: "POST",
url: base_link+"/am_registr/ciudad/estado_paisout",
dataType: "json",
data: {'pid': id},
success: function(xhr){
alert(xhr);
},
error : function(xhr, status, error){
alert(xhr.responseText);
}
});
return false;
});
所以问题是这会返回404错误页面,说明无法找到此页面。当我尝试从控制器回显一个简单的“Hello”时,它会给出相同的错误。但是当我在浏览器中尝试完整链接“localhost / mysite / index.php / am_registr / ciudad / estado_paisout”时,它告诉我这是一个applicatio / json文件,所以当我保存它并尝试用记事本打开它时,我得到了“你好”。
欢迎任何帮助..!
答案 0 :(得分:0)
不确定,我会检查你的配置/路由,以确保它可以处理
am_registr /城/ estado_paisout
我认为默认是处理
而您将estado_paisout视为操作名称。
我还要看的是确保你的mod_rewrite正在使用localhost
并且代码igniter用于从URL中删除index.php的.htaccess文件正在运行
答案 1 :(得分:0)
HI David Chan,
我告诉你我已经解决了这个问题,我想这只是在jquery函数中我声明了变量base_link = "localhost/mysite/index.php"
,而不是那样:base_link = "http://localhost/mysite/index.php".
所以感谢你的帮助......!