0

*MYSQL が廃止されたことは知っています。今のところ学習ツールとして使用しています。

更新された質問:

私は自分の質問を更新して、もっと意味のあるものにしました...

出力配列 (PHP ファイルの json データ) を HTML ページに表示するにはどうすればよいですか?

JavaScript

<script>
$(document).ready(function () {
$('.answer').click(function (e) {
var color = $(this).attr("data-color");
$.ajax({
type: 'POST',
url: 'mm.php',
data: { color: color},
dataType: 'json',
cache: false,
success: function(showVotes) {
$('#rvotes').html(row[0]);
},
error: function (jqXHR) {

}

})
})
});
</script>

PHP

function showVotes()
{
 $sql = "SELECT * FROM mms";
 $result = mysql_query($sql) or die(mysql_error());
 $showresult = mysql_query("SELECT * from mms") or die("Invalid query: " . mysql_error());
 $response = array();
 while($row = mysql_fetch_assoc($showresult)) 
 $results[] = $row; 
 echo json_encode($results);
}

HTML コードの追加

<div id="wrapper">

<div id="red" data-color="red" class="answer">
<a href="#"><img src="images/red.jpg" width="100%" /></a>
</div>

<div id="blue" data-color="blue" class="answer">
<a href="#"><img src="images/blue.jpg" width="100%" /></a>
</div>

<div id="green" data-color="green" class="answer">
<a href="#"><img src="images/green.jpg" width="100%" /></a>
</div>

<div id=rvotes>
TEST
</div>

<div id=bvotes>
TEST
</div>

配列からの出力を HTML ページに表示するにはどうすればよいですか?

4

2 に答える 2

4

これはこの質問に似ていると思います。

PHP配列からデータを取得 - AJAX - jQuery

ajaxにあるため、php配列にアクセスできません。PHP 配列を json_encode() 関数に渡してエコーすることにより、最初に JSON として表現する必要があります。

echo json_encode($results);

そして、パラメーターとして ajax コールバックに渡されます。

あなたの成功した ajax コールバックでは、

success: function(showVotes) {
$('#rvotes').html(showVotes[0]);
},
于 2013-03-05T00:59:17.060 に答える
0

個人的には、次のように事前にレンダリングされた html を php に吐き出させます。

 $sql = "SELECT * FROM mms";
 $result = mysql_query($sql) or die(mysql_error());
    //I cleaned up redundant queries here...
    //echo top border
   echo "<table border='1'>
   <tr>
   <th>Color</th>
   <th>Votes</th>
   </tr>";
 while($row = mysql_fetch_assoc($showresult)) 
while($row = mysql_fetch_assoc($showresult)
  {
  echo "<tr>";
  echo "<td>" . stripslashes($row['color']) . "</td>";
  echo "<td>" . stripslashes($row['votes']) . "</td>";
  echo "</tr>";
  }

HTMLを吐き出した後、これを行うだけです:

<script>
$(document).ready(function () {
$('.answer').click(function (e) {
var color = $(this).attr("data-color");
$.ajax({
type: 'POST',
url: 'mm.php',
data: { color: color},
success: function (showVotes) {
$("#votes").html(showVotes); //this edits the text inside the div to be whatever your php spits out
},
error: function (jqXHR) {
}

})
})
});
</script>
<div id="votes></div>
于 2013-03-05T01:01:49.163 に答える