Codeigniter控制器不返回值以通过jquery查看

时间:2011-05-25 14:19:52

标签: jquery codeigniter post

我有一个像codeigniter

那样的文件夹结构
 +asset
 +css
 +js
   +jquery
     jquery.js
     global.js
+application
+system

所以我想你会弄清楚结构的其余部分。现在我有这样的观点:

<li>
        <label>Pa&iacute;s</label>
        <div>
            <select name="pais" id="pais">
                <option value="" selected="selected"> -- Selecciona un pa&iacute;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文件,所以当我保存它并尝试用记事本打开它时,我得到了“你好”。

欢迎任何帮助..!

2 个答案:

答案 0 :(得分:0)

不确定,我会检查你的配置/路由,以确保它可以处理

am_registr /城/ estado_paisout

我认为默认是处理

  • am_registr为控制器
  • ciudad as action(method)name
  • estado_paisout as param ...

而您将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".所以感谢你的帮助......!