0

こんにちはAJAX、PHPとMySQLのソートをいくつか実行しましたが、以下のコードに示すように結果がテーブルに表示されます。私の質問は、その $result を html に取り込む方法divsです。

助けてください

使用した PHP コード

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("security_software", $con);

$sql="SELECT * FROM internet_security ORDER by '".$q."' DESC" ;


$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<th>id</th>
<th>title</th>
<th>image</th>
<th>description</th>
<th>rating</th>
<th>download</th>
<th>buy</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['title'] . "</td>";
  echo "<td>" . $row['image'] . "</td>";
  echo "<td>" . $row['description'] . "</td>";
  echo "<td>" . $row['rating'] . "</td>";
  echo "<td>" . $row['download'] . "</td>";
  echo "<td>" . $row['buy'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?> 

これらの HTML Div で結果が欲しい

<div class="category-container">
    <div class="category-image"></div>
    <div class="category-link"><a href="#">#</a></div>
    <div class="category-desc"><p>#</p> </div>          
    <div class="rating5" >Editors' rating: </div>        
    <div class="category-download-btn"><a href="#">Download </a></div><
    <div class="category-buy-btn"><a href="#">Buy</a></div>
</div>
4

3 に答える 3

1

ajax応答を返すときにテーブルを作成している理由がわかりません。ajax の結果として json レスポンスを作成することをお勧めします。この結果の JSON を使用して、テーブルを作成するか、HTML でレンダリングすることができます。ajaxリクエストが送信されるphpコード: ajax.php

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("security_software", $con);

$sql="SELECT * FROM internet_security ORDER by '".$q."' DESC" ;


$result = mysql_query($sql);
$response = array();
$i=0;
while($row = mysql_fetch_array($result))
  {
  $response[$i]['id']           =$row['id'];
  $response[$i]['title']        = $row['title'];
  $response[$i]['image']        = $row['image'];
  $response[$i]['description']  = $row['description'];
  $response[$i]['rating']       = $row['rating'];
  $response[$i]['download']     = $row['download'];
  $response[$i]['buy']          = $row['buy'];
  $i++;
  }
mysql_close($con);

echo json_encode($response);
?>

この ajax 応答を取得している html ファイルで、この ajax 応答を使用する方法のヒントを示しています。

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript">
    $.ajax({
        url: 'ajax.php',
        dataType: 'json',
        success: function(response){
            data = '';
            $.each(response,function(i,val){
              data = '<div class="category-image">'+val.image+'</div>'+
            '<div class="category-link"><a href="#">'+val.id+'</a></div>'+
            '<div class="category-desc"><p>'+val.description+'</p> </div>'+
            '<div class="rating5" >'+val.rating+'</div>'+ 
            '<div class="category-download-btn"><a href="'+val.download+'">Download </a></div>'+
            '<div class="category-buy-btn"><a href="'+val.buy+'">Buy</a></div>';
            $('<div>').attr('id',i).html(data).appendTo('#response');
        });
            });
        }
    });
  </script>
</head>

<body>
<div id='response'></div>   
</body>
</html>
于 2012-05-15T09:25:36.693 に答える
0

データベースが「security_software」と呼ばれ、衛生状態を行わずにGET varをデータベースクエリに直接入れているので、これをちょっとした冗談と見なす傾向があります。また、データベースをページに戻す前に、データベースから取得したものをクリーンアップしようとはしていません...

とにかく、それが冗談ではないと仮定すると、以下はあなたを正しい方向に向けるべきです:

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("security_software", $con);

$sql="SELECT * FROM internet_security ORDER by '".$q."' DESC" ;

$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
    echo '<div class="category-image"><img src="' $row['image'] . '</div>';
    echo '<div class="category-link"><a href="#">' . $row['title'] . '</a></div>';
    echo '<div class="category-desc"><p>' . $row['description'] . '</p></div>';        
    echo '<div class="rating5" >Editors' rating: ' . $row['rating'] . '</div>';       
    echo '<div class="category-download-btn"><a href="' . $row['download'] .'">Download</a></div>';
    echo '<div class="category-buy-btn"><a href="' . $row['buy'] . '">Buy</a></div>';
 }
echo "</table>";

mysql_close($con);
?>
于 2012-05-15T08:49:57.900 に答える
0

これらの div で結果を取得したい場合は、table/tr/tds の代わりに同じ div を使用するか、json/xml または任意の種類のオブジェクトベースのデータを受け取ってバインドできます

于 2012-05-15T08:39:20.797 に答える