原创!!CI+jQuery实现Ajax
要点:1.在控制器中,对应的method最后输出采用:
echo $this->load->view(视图,数据,true);
2.在js脚本中,对应的post语句:
$.post( $(this).attr("href"), function(data){$(选择器).html(data);});
第一个,是利用view函数的true参数,将输出存到字符串中,而不是直接输出到浏览器。
第二个,由于CI的url的格式分段,因此传统的查询字符串不方便使用,这里直接用jQ对象的.attr()函数取得原链接,而不是组建查询字符串。
本帖最后由 lnxa 于 2012-2-22 17:10 编辑
你這個沒有狀態返回
我比較喜歡用json輸出結果
controller
class ajax extends CI_Controllers {
function __construct()
{
parent::__construct();
}
public function get()
{
$data['status'] = 'success'; // 成功的狀態
$data['result'] = '我要的內容';
echo json_encode($data);
}
}
html jquery
$.get('ajax/get', function(data){
if (data.status == 'success')
{
alert(data.result);
}
else
{
alert('出錯了!');
}
}, 'json');
顶一下! 本帖最后由 指尖的殤魂 于 2012-4-17 14:47 编辑
lnxa 发表于 2012-2-22 17:09 static/image/common/back.gif
你這個沒有狀態返回
我比較喜歡用json輸出結果
我的还是接收不了,
$(document).ready(function() {
$("#fileUp").ajaxForm({
success: complete,// post-submit callback
dataType: 'json'
})
function complete(data){
alert(data);
if (data.status=='success')
{
alert(data.info);//成功信息
}else{
alert(data.info);//失败信息
}
}
});
if(!$this->upload->do_upload()){
$data['info'] = $this->upload->display_errors();
header('Content-Type:text/html; charset=utf-8');
exit(json_encode($data));
}else{
header("Content-Type:text/html; charset=utf-8");
$data['status'] = 'success';
$data['info'] = $this->upload->data();
echo json_encode($data);
}
帮忙看看 指尖的殤魂 发表于 2012-4-17 14:46 static/image/common/back.gif
我的还是接收不了,
很简单 用Firebug -> 网络->XHR 可以看到请求
页:
[1]