我构建了一个简单的数据库,其中页面显示随机选择的引号,这些引号显示在无序列表中。 js脚本遍历每个列表项,一次显示一个。
这是查询循环:
while ($row = mysql_fetch_assoc($query)) {
echo "<li><span id='id'>";
// print the quote number
printf ("%s", $row['id']);
echo "</span> <span id='quote'>";
// print the quote
printf ("%s", $row['strategy']);
echo "</span> <span id='author'>";
// print the quote author
printf ("by %s", $row['author']);
echo "</span></li>";
}
到目前为止一切顺利。我的问题是如何显示喜欢和不喜欢的数量,并让用户'投票'。我无法弄清楚如何在打印出这样的数据后保持数组数据的活动状态。我可以使用计数器来跟踪PHP中的行元素,这样我就可以知道用户投票的是什么引用了吗?
谢谢!
答案 0 :(得分:0)
您可以在行中回显数据库主键或索引号作为id。 然后javascript可以轻松检测哪个元素被投票。
示例:
while ($row = mysql_fetch_assoc($query)) {
echo "<li><span id='id'>";
// print the quote number
printf ("%s", $row['id']);
echo "</span> <span id='quote'>";
// print the quote
printf ("%s", $row['strategy']);
echo "</span> <span id='author'>";
// print the quote author
printf ("by %s", $row['author']);
echo "</span>";
echo "<a id='votelink_'".$row['id']."href='javascript:void(0);' onclick='checkVote(this.id);' > VOTE HERE </a>";
echo "</li>";
}
Javascript:
function checkVote(theId)
{
alert("Element with id = " + theId + " was voted" );
}
答案 1 :(得分:0)
您的代码难以阅读,所以我重写了它。您希望使用报价ID号来访问有关报价的其他数据。 Dhruv的例子是使用元素id并使用javascript获取数据的好方法。但对于某些事情,您可能希望在服务器上处理更多内容。
// assume the numbers I'm using are valid quote ids
$like_array=array(12=>'15 likes', 14=>'2 likes', 18=>'6 likes');
$output ='';
while ($row = mysql_fetch_assoc($query)) {
$output .= "<li><span id='id'>{$row['id']}</span> "; // quote number
$output .= "<span id='quote'>{$row['strategy']}</span> "; // print the quote
$output .= "<span id='author'>by {$row['author']}</span></li>"; // print the quote author
$output .= '<a href="http://somelink.com/page.php?like='.$row['id'].'"></a>'; // like link
$output .= '<span>Number of likes: '.$like_array[$row['id'].'</span>'; // like link
}
echo $output;
您可以看到,like链接只是一个将引号的id作为$ _GET变量传递的链接。对于喜欢部分的数量,假设我们已经拥有该信息,并且它已经在索引键为引号ID的数组中。 (那是$ like_array)
这只是基本的想法,但应该让你朝着正确的方向前进。