Javascript 从php数组-AJAX-jQuery获取数据
我有一个页面如下Javascript 从php数组-AJAX-jQuery获取数据,javascript,json,jquery,Javascript,Json,Jquery,我有一个页面如下 <head> <script type="text/javascript" src="jquery-1.6.1.js"></script> <script type="text/javascript"> $(document).ready( function() { $('#prev').click(function() { $.ajax({ type: 'POST', url: 'ajax.php', data:
<head>
<script type="text/javascript" src="jquery-1.6.1.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$('#prev').click(function() {
$.ajax({
type: 'POST',
url: 'ajax.php',
data: 'id=testdata',
cache: false,
success: function(result) {
$('#content1').html(result[0]);
},
});
});
});
</script>
</head>
<body>
<table>
<tr>
<td id="prev">prev</td>
<td id="content1">X</td>
<td id="next">next</td>
</tr>
</table>
</body>
但是当我单击时,我得到的是A
,而不是数组[0]。我怎样才能解决这个问题
提前感谢…当您执行echo$array时代码>,PHP将简单地回显“Array”,因为它无法将数组转换为字符串。所以实际上得到的“A”是数组的第一个字母,这是正确的 你可能真的需要
echo json_encode($array);
这会让你得到你想要的
编辑:显然,您需要更改JS以使用JSON,而不仅仅是文本(正如@genesis所指出的)您无法从JS访问数组(php数组)
试一试
当您
echo$array时
,结果是数组
,结果[0]
然后表示数组
中的第一个字符,即A
处理此问题的一种方法如下:
ajax.php
<?php
$array = array(1,2,3,4,5,6);
foreach($array as $a)
echo $a.",";
?>
您无法从jstry访问数组(php数组)
<?php
$array = array(1,2,3,4,5,6);
echo implode('~',$array);
?>
很可能是最简单的方法
<?php
$change = array('key1' => $var1, 'key2' => $var2, 'key3' => $var3);
echo json_encode(change);
?>
然后jquery脚本
<script>
$.get("location.php", function(data){
var duce = jQuery.parseJSON(data);
var art1 = duce.key1;
var art2 = duce.key2;
var art3 = duce.key3;
});
</script>
$.get(“location.php”,函数(数据){
var duce=jQuery.parseJSON(数据);
var art1=duce.key1;
var art2=duce.key2;
var art3=duce.key3;
});
@genesis,你当然是对的。在答案中注明,谢谢。是的,这也是我在寻找的答案。感谢+1的jQuery.parseJSON(数据)代码>解决了我的问题!!只是一张纸条。最新版本的jQuery中不推荐使用jQuery.parseJSON。改用JSON.parse。
$(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]);
}
});
});
});
<?php
$array = array(1,2,3,4,5,6);
echo implode('~',$array);
?>
$(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]);
},
});
});
});
<?php
$change = array('key1' => $var1, 'key2' => $var2, 'key3' => $var3);
echo json_encode(change);
?>
<script>
$.get("location.php", function(data){
var duce = jQuery.parseJSON(data);
var art1 = duce.key1;
var art2 = duce.key2;
var art3 = duce.key3;
});
</script>