2013-05-20 64 views
0

当用户转到其中一个页面(我们称之为page1)时,PHP会加载包含有关用户数据的数组的HTML内容。AJAX调用在本地服务器上工作,但不在线

一旦页面加载(DOM就绪),我使用jQuery的执行AJAX调用来检索数据的阵列的HTML。我这样做是为了获得使用单独的PHP模板文件的好处。通过这种方式,PHP将为双维数组中的每个数组调用PHP模板并返回HTML。

page1.php中:

<script type="text/javascript"> 
    var globalArray = <?php echo json_encode($freres); ?>; 

    jQuery(function($) { 
     liste(); // Ajax call to get HTML for the data in "globalArray" 
    }); 
</script> 

AJAX调用:

function liste() { 
    $.ajax({ 
     data : { 
      array : globalArray, 
      dataName : 'someName', 
      file : 'templates/t_item_file' 
     }, 
     dataType : 'html', 
     success : function(data, textStatus, jqXHR) { 
       var table = $('table'); 
       var rows = $('<table>' + data + '</table>').find('tr'); 

       rows.each(function(i, e) { // insert with fade-in animations 
        var row = $(e); 

        row.hide(); 
        table.append(row); 
        row.delay(i * 15).fadeIn(250); 
       }); 
     }, 
     type : 'GET', 
     url : config.site + 'ajax/view' // configured in header 
    }); 
} 

某处t_header.php:

<script type="text/javascript"> 
    var config = { 
     base : "<?php echo base_url(); ?>", 
     site : "<?php echo site_url(); ?>" 
    }; 
</script> 

的CONFI当我使用的EasyPHP这个

public function view() { 
     $file = $this->input->get('file'); 
     $array = $this->input->get('array'); 
     $dataName = $this->input->get('dataName'); 

     foreach ($array as $vars) { 
      $data[$dataName] = $vars; 

      $this->load->view($file, $data); 
     } 
    } 

:重定向到AJAX /视图/ g的路线...

$route['ajax/(:any)'] = 'c_ajax/$1'; 

控制器c_ajax,处理AJAX调用的方法在本地主机上,一切工作正常,我收到了预期的HTML,如:

<TR> 
    <TD>...</TD> 
    //... 
</TR> 
<TR> 
//... 

然后我把它插入到table。但是,当我尝试在FireBug的网站上执行此操作时,我可以看到AJAX响应不是200,而是302 Moved Temporarily

任何人都可以帮助我找出解决办法的方法,因为我花了差不多四天的时间学习jQuery和AJAX,并且它不工作(仅限在线)。

+1

'302'是一个重定向,可能与您的实际代码无关。寻找定义重定向的'.htaccess'文件(假设为Apache),或者您在代码中创建的内容。 – hexblot

+1

尝试打一个AJAX网址在浏览器直接在地址栏里检查的内容越来越 –

+0

@hexblot事实上,我有我的服务器是处理该集合PHP_5_4,一个在我的笨层次结构的根目录以外的根目录的.htaccess从URL中删除'index.php'。我已经尝试过删除它,然后放回* *的index.php在URL中,但它仍然没有工作。 – Flawyte

回答

-1

问题解决了。我使用PHP加载HTML数据并将其传递给JavaScript,然后使用jQuery为DOM元素设置动画效果。

以前,我没有在HTML数组中传递原始数据,然后尝试通过Ajax获取数组中所有元素的HTML(HTML中只有一个调用中的所有元素)。我认为请求中的参数太多,这可能是导致错误的原因。

0

相反

文件: '模板/ t_item_file'

给控制器

例如完整路径: “http://www.yourdomain.com/---/templates/t_item_file

+0

正如你可以在'视图()见'方法我用CI装入对象加载模板,所以我不认为这是问题,因为该文件位于*的意见/​​模板/ t_item_file *。 – Flawyte

相关问题