我正在为我开发的网站编写一个新的功能插件,并坚持如何实现这样的功能。我试图将SQL查询返回到一个数组,然后我可以将其传递给PHP或JavaScript中的函数,以执行随机选项选择器,并将结果显示给用户。我试图通过点击功能来执行随机选择器。
到目前为止,我已经想出如何成功选择我的SQL查询,返回语句,以及在JavaScript中使用随机选项选择器。但是,我找不到将所有这些东西组合在一起产生结果的好方法。
我想知道是否有人知道如何做到这一点。是否更好地在PHP中执行整个程序功能或更好地将其传递给JavaScript函数并通过JS代码返回结果?
以下是我的代码的一些示例。请假设我的查询有效。我的代码中不需要显示选项。它被实现为检查查询结果。我希望在用户的真实插件中隐藏数组,并将返回的结果用于附加到HTML元素的点击功能。
<?php
function choices() {
$config = parse_ini_file(*database file*);
$con = mysqli_connect(*database information*);
if(!$con){
exit("Please try again later.");
}
$query = "SELECT * FROM *query*";
$result = @mysqli_query($con, $query);
$num = mysqli_num_rows($result);
if ($num > 0) {
echo "<p>There are currently $num restaurants.</p>\n";
echo '<table width="60%">
<thead>
<tr>
<th align="left">Restaurant Title: </th>
<th align="left">Link: </th>
</tr>
</thead>
<tbody>
';
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo '<tr><td align="left">' . $row['post_title'] . '</td><td align="left">' . $row['guid'] . '</td></tr>
';
}
echo '</tbody></table>';
mysqli_free_result($result);
}
else {
echo '<p class="error">The results could not be retrieved.</p>';
}
mysqli_close($con);
}
$foo = choices();
?>
我的JS代码。
var favorites = ["choice #1, choice #2, choice #3, choice #4"];
var favorite = favorites[Math.floor(Math.random() * favorites.length)];
非常感谢您对此问题的任何意见!我知道这是一个相当冗长的问题,我很感激时间来帮助我理解它。
答案 0 :(得分:1)
为什么不让你的数据库返回一个随机结果,因为这就是你所需要的一切?
SELECT * FROM tbl ORDER BY RAND() LIMIT 1
答案 1 :(得分:0)
将查询结果放在PHP数组中。然后使用json_encode()
将其转换为Javascript数组。然后onclick功能可以显示数组的随机元素。
$array = array();
while ($row = mysqli_fetch_assoc($result)) {
$array[] = $row['post_title'];
}
?>
<script>
var favorites = <?php echo json_encode($array); ?>;
$("#button").click(function() {
var favorite = favorites[Math.floor(Math.random() * favorites.length)];
alert(favorite);
});
</script>