当用户转到其中一个页面(我们称之为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,并且它不工作(仅限在线)。
'302'是一个重定向,可能与您的实际代码无关。寻找定义重定向的'.htaccess'文件(假设为Apache),或者您在代码中创建的内容。 – hexblot
尝试打一个AJAX网址在浏览器直接在地址栏里检查的内容越来越 –
@hexblot事实上,我有我的服务器是处理该集合PHP_5_4,一个在我的笨层次结构的根目录以外的根目录的.htaccess从URL中删除'index.php'。我已经尝试过删除它,然后放回* *的index.php在URL中,但它仍然没有工作。 – Flawyte