从php数组获取数据 – AJAX – jQuery
我有一个页面如下;
prev | X | next |
和一个PHP文件ajax.php来处理Ajax请求;
但是当我点击,我得到A而不是数组[0]。 我怎样才能解决这个问题?
提前致谢…
你不能从js尝试访问数组(PHP数组)
和js
$(document).ready( function() { $(‘#prev’).click(function() { $.ajax({ type: ‘POST’, url: ‘ajax.php’, data: ‘id=testdata’, dataType: ‘json’, cache: false, success: function(result) { $(‘#content1’).html(result[0]); }, }); }); });
很可能是最简单的方法…
<?php $change = array(‘key1’ => $var1, ‘key2’ => $var2, ‘key3’ => $var3); echo json_encode(change); ?>
然后,jQuery脚本…
当你echo $array; ,结果是Array , result[0]表示Array的第一个字符,即A
处理这个问题的一种方法是这样的:
ajax.php
jQuery代码
$(function(){ /* short for $(document).ready(function(){ */ $(‘#prev’).click(function(){ $.ajax({type: ‘POST’, url: ‘ajax.php’, data: ‘id=testdata’, cache: false, success: function(data){ var tmp = data.split(“,”); $(‘#content1’).html(tmp[0]); } }); }); });
你不能从js尝试访问数组(PHP数组)
和js
$(document).ready( function() { $(‘#prev’).click(function() { $.ajax({ type: ‘POST’, url: ‘ajax.php’, data: ‘id=testdata’, cache: false, success: function(data) { result=data.split(‘~’); $(‘#content1’).html(result[0]); }, }); }); });
当你做echo $array; ,因为PHP不能将一个数组转换为一个string,所以PHP会简单地回显’Array’。 所以你实际得到的’A’是Array的第一个字母,这是正确的。
你可能真的需要
echo json_encode($array);
这应该得到你想要的。
编辑 :显然,你需要改变你的JS与JSON的工作,而不是只是文本(由@genesis指出)