我有一个动态提取模态窗口的页面,它通过mySQL在一行(有多列)上显示扩展信息。我遇到的问题是我的JSON代码不能正确填充信息以便输出。我尝试了多个嵌套数组,while循环和for循环。但是,我只需要从数据库中返回一整行信息。在我挠头之后,我正在寻求所有SO专家的帮助。任何指针都非常感激。
var data_id = $(this).data('id');
$.ajax({
url: 'view_agency_info.php',
type: 'POST',
data: {id: data_id},
dataType: 'json',
success: function(data){
$('.view_modal_content').html(data.html); // LOAD THE DATA INTO THIS DIV
},
error: function(jqXHR, textStatus, errorThrown){
$('.view_modal_content').html(''); // LOAD THE DATA INTO THIS DIV
alert('Error Loading Information');
}
});
<?php
$customer_id=$_SESSION['customer']['customer_id'];
$id = (int)$_POST['id'];
$query = "SELECT * FROM collections_list WHERE id={$id} && customer_id=$customer_id LIMIT 1"; //expecting one row
$result = mysql_query( $query );
//$message = mysql_fetch_assoc( $result ); //expecting just one row
$message=array();
while ($row = mysql_fetch_assoc($result)) {
$message[]=$row['agency_name'];
$message[]=$row['account_number'];
$message[]=$row['phone'];
}
$json = array();
$json['html'] = '<p><pre><code>id:'.$id.'.<br>Agency Name: '.$message[0].'<br>Account Number:'.$message[1]."<br>Phone:".$message[2].'</code></pre></p>'.'<br><br>test';
header('Content-Type: application/json');
echo json_encode( $json );
?>
附加问题:
是否可以在返回的html中使用“$ message ['agency_name']”引用数组中的标题?
解决此问题后,我需要将输出的html转换为结构,以便我的用户以正确可理解的格式查看信息。我知道如何在html中执行此操作,但我不熟悉JSON ...有没有办法输出信息而无需手动编写结构代码?
提前谢谢。
答案 0 :(得分:2)
$con = mysql_connect("localhost","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db(db_nname", $con);
$result = mysql_query("SELECT phone,agency_name FROM '''' ");
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows['results'][] = $r;
}
print json_encode($rows);
?>
并在你的HTML中
<table id ="listtable"></table>
var listdiv = $("#listtable");
$.getJSON("whatever.php",function(json){
$.each(json.results,function(i,data){
listdiv.append("<tr><th>" + data.phone + "</th><th>" + data.agency_name + "</th></tr>");
});
});
并在附加使用数据中。无论你的领域是什么 data.agency_name data.phone
等...