4

背景:

我有一个动态拉出模式窗口的页面,该窗口通过 mySQL 在一行(多列)上显示扩展信息。我遇到了我的 JSON 代码无法正确填充信息以便输出的问题。我尝试了多个嵌套数组、while 循环和 for 循环。但是,我只需要从数据库中返回一整行信息。在挠头之后,我正在寻求所有 SO 专家的帮助。任何指针都非常感谢。

Div 人口的 Ajax 代码(作品)

  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');
                    }
                });

用于提取信息并返回 HTML 的 JSON 代码

<?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 不熟悉......有没有一种方法可以输出信息而无需手动编码结构?

先感谢您。

4

1 回答 1

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

ETC....

于 2013-04-05T20:15:13.857 回答