2011-10-16 86 views
0

我想動態解析RSS提要。 我有一個選擇列表,我想用ajax發送一個值(id)給控制器。 後,我想分析RSS對應ID飼料AJAX和Codeigniter控制器

我的控制器home.php:

function view($type = NULL) 
{ 
    $data = array(); 
    $this->load->model('flux_model'); 

    if ($type == "ajax") {// load ajax view     
     $flux = $this->flux_model->get_one_flux($this->input->post('id'));// ajax id 
     $flux2 = $flux[0]->url_flux; 
     $xml = new SimpleXMLElement($flux2, NULL, TRUE); 
     //my foreach 
     $this->load->view('messages_list', $data); 
     } 
    else{ // load the default view  
     $nb_min = 0; 
     $nb_max = 7; 
     $nombre = mt_rand($nb_min,$nb_max); 
     $flux = $this->flux_model->get_one_flux($nombre); 
     $flux2 = $flux[0]->url_flux; 
     $xml = new SimpleXMLElement($flux2, NULL, TRUE); 
     //my foreach 
     $this->load->view('default', $data); 
     } 
} 

阿賈克斯腳本:

$("#myform1 #rss").change(function(){ 
    var msg = $('#myform1 #rss').val(); 

    $.post("<?= site_url('home/view/ajax') ?>", {id: msg}, function() { 
     $('#main').load("<?= site_url('home/view/ajax') ?>"); 
     $('##myform1 #country').val(''); 
    }); 

});

視圖默認作品,我解析RSS饋送隨機 但與AJAX視圖,我有這樣的錯誤: 消息:的SimpleXMLElement :: __構建體():I/O警告:未能加載外部實體 「」

它看起來像我沒有得到ID?!阿賈克斯問題?

回答

1

我覺得你的問題是與

$.post("<?= site_url('home/view/ajax') ?>" [etc.] 

由於許多網站的配置將防止跨站點Ajax請求(見XSS),您的$。員額將被阻止。相反,嘗試這樣的:

$.post("controller/method/parameters" [etc.] 

在你的JavaScript:

$.post("ajax/myajax/myparam",{},function(data) { alert(data); }); 

並在控制器/ ajax.php文件:

class Ajax extends CI_Controller 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function myAjax(parameter='') 
    { 
     /** 
     * Load models, or whatever. Then echo the results, so that 
     * $.post gets its "data" var. 
     */ 
    } 

} 

我希望這可以幫助!

+0

謝謝!我試過的東西太複雜了 – Dualweil

0

我只是代替:

$.post("<?= site_url('home/view/ajax') ?>", {id: msg}, function() { 
    $('#main').load("<?= site_url('home/view/ajax') ?>"); 
    $('##myform1 #country').val(''); 
    }); 

通過

$.post('<?= site_url('home/view/ajax') ?>', options,  function(data) { 
    $('#content').html(data); 
})