在过去的 3 天里,我一直坚持这个问题总共大约 7 个小时,这让我发疯了。非常感谢您能提供给我的任何帮助。
基本上我想:
在页面加载时调用一个 PHP 函数,该函数从中随机选择一条记录 我的 MySQL 数据库
在 HTML 页面中动态显示该记录
(一旦我记下了它,我还希望能够通过单击按钮来触发该过程。)
在处理这个任务之前,我整理了一个原型(prototype),它通过 HTML 下拉菜单动态显示特定记录:http://lrdondmt.com/week13/ajaxprototype1.html
我一直在尝试修改此代码以实现上述目标。
我的 PHP 看起来像这样:
<?php
// connect to database
$username= "**withheld**"'
$password="**withheld**";
$database="**withheld**";
$table="banddb";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
// the query itself, selects random record from database
$sql="SELECT * FROM banddb WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM quotes ) ORDER BY id LIMIT 1";
$result = mysql_query($sql);
// echo result
while($row = mysql_fetch_array($result))
{
echo '<b>Band name:</b> ' . $row['bandname'] . '</br></br>';
echo '<b>Location:</b> ' . $row['city'] . ', ' . $row['state'] . '</br></br>';
echo '<b>Image:</b> </br></br>' . '<img src="http://lrdondmt.com/discovermusic/images/' . $row['imgpath'] . '" />' . '</br></br>';
echo '<b>About the band: </b>' . $row['abouttheband'] . '</br></br>';
echo '<a href="' . $row['bandcamplink'] . '"><img src="http://www.lrdondmt.com/discovermusic/images/bandcamp-icon.png" alt="Find on the band on Bandcamp" /></a>' . '</br></br>';
echo '<a href="' . $row['facebooklink'] . '"><img src="http://www.lrdondmt.com/discovermusic/images/facebook-icon.png" alt="Find on the band on Facebook" /></a>' . '</br></br>';
echo '<b>Bandcamp player:</b> </br></br>' . '<iframe width="300" height="100" id=bandcampplayer src="http://bandcamp.com/EmbeddedPlayer/v=2/album=' . $row['bandcampid'] . '/size=grande/bgcol=e9e9e9/linkcol=890101/" allowtransparency="true" frameborder="0" >' . '</br></br>';
}
echo "</table>";
// close connection
mysql_close();
?>
我的 HTML 文档如下所示:
<!DOCTYPE html>
<html>
<head>
<title>AJAX prototype 2</title>
<script type="text/javascript" >
function showRecord()
{
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
xmlhttp.open("GET","getmusic2.php",true);
xmlhttp.send();
}
</script>
<script type="text/javascript" >
$(document).ready(function(showRecord))
</script>
</head>
<body>
<div id="txtHint">
<em>Your content should appear here.</em>
</div>
</body>
</html>
如果您需要任何进一步的信息,请直接询问。
最佳答案
因为您已经在使用 jQuery,所以您可以用这个更简单的 jQuery 函数替换整个 showRecord() 函数:
$.ajax({
url: 'getmusic2.php',
success: function(data) {
$('#txtHint').html(data);
}
});
此外,您的加载调用应如下所示:
$(document).ready(function() {
showRecord();
});
关于php - 通过 PHP 调用页面加载的随机记录,通过 AJAX 动态显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13207571/