4

バックグラウンド:

mySQL を介して行 (複数の列) に拡張情報を表示するモーダル ウィンドウを動的に表示するページがあります。出力できるように、JSON コードで情報が正しく入力されないという問題があります。複数のネストされた配列、 while ループと for ループを試しました。ただし、データベースから 1 行の完全な情報を返すだけで済みます。頭を悩ませた後、すべての 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.gency_name data.phone

等....

于 2013-04-05T20:15:13.857 に答える