0

*我知道 MYSQL 已被贬低。我现在只是将它用作学习工具。

更新的问题:

我更新了我的问题以使 lil 更有意义......

假设我想将输出数组(PHP 文件中的 json 数据)添加到 div id rvotes,如何在我的 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

您无法访问 php 数组,因为它在您的 ajax 中。您需要首先将其表示为 JSON,方法是将您的 php 数组传递给 json_encode() 函数并回显它。

echo json_encode($results);

它将作为参数传递给您的 ajax 回调。

在你成功的ajax回调中,

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

就个人而言,我会让我的 php 像这样吐出预渲染的 html:

 $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 回答