我有一个AJAX函数:
function admin_check_fn(type)
{
//$("#notice_div").show();
//var allform = $('form#all').serialize();
$.ajax({
type: "POST",
//async: false,
url: "<?php bloginfo('template_url'); ?>/profile/adminquery_check.php",
data: { type: type },
//data: 'code='+code+'&userid='+userid,
dataType: "json",
//dataType: "html",
success: function(result){
var allresult = result.res
$('#result').html( allresult );
alert(allresult);
//$("#notice_div").hide();
}
})
}
服务器端:
$queryy="SELECT * FROM wp_users";
$name = array();
$resultt=mysql_query($queryy) or die(mysql_error()); ?>
<?php while($rowss=mysql_fetch_array($resultt)){
$name = $rowss['display_name'];
}
echo json_encode( array(
"res" => array($rowss['display_name']),
"fvdfvv" => "sdfsd"
)
);
基本上由于某种原因,它没有将查询中的所有返回值显示到数据库中的users表。当我查询另一个只有一个条目的表时,它可以工作,所以我认为这可能与某个数据没有正确解析的事实有关吗?
只是想知道是否还有其他人遇到过这个问题?
谢谢
答案 0 :(得分:3)
你的ajax成功将返回的数据视为html,但它是json。
var allresult = result.res
/* assumes allResult is html and can be inserted in DOM*/
$('#result').html( allresult );
你需要解析json来创建html,或者从服务器返回html
还有php循环:
$name = $rowss['display_name'];
应该更像是:
$name[] = $rowss['display_name'];
答案 1 :(得分:2)
您始终会覆盖名称:
<?php while($rowss=mysql_fetch_array($resultt)) {
$name = $rowss['display_name'];
}
但是这部分不在你的循环中:
"res" => array($rowss['display_name']),
因此,您只能得到一个结果(最后一个)。
答案 2 :(得分:1)
Smamatti有一个很好的观点。
解决此问题:
<?php
$query = "SELECT * FROM wp_users";
$names = array();
$result = mysql_query($query) or die(mysql_error());
while( $rows = mysql_fetch_array( $result ) ){
$names[] = $rows['display_name'];
}
echo json_encode( array(
"res" => $names,
"fvdfvv" => "sdfsd"
)
);