将内容异步加载到php中的div中
我有一个按钮,从MySQL服务器加载艺术家列表,每个艺术家都有一个与其相关的链接和一个用于添加内容的div。该链接获取与该艺术家相关的歌曲数据。我想异步加载歌曲数据,但由于URL编码和使用PHP动态生成的div,我在解决如何加载时遇到了问题 我的页面将内容异步加载到php中的div中,php,jquery,json,asynchronous,Php,Jquery,Json,Asynchronous,我有一个按钮,从MySQL服务器加载艺术家列表,每个艺术家都有一个与其相关的链接和一个用于添加内容的div。该链接获取与该艺术家相关的歌曲数据。我想异步加载歌曲数据,但由于URL编码和使用PHP动态生成的div,我在解决如何加载时遇到了问题 我的页面 <html> <head> <title>BadNoise</title> </head> <body>
<html>
<head>
<title>BadNoise</title>
</head>
<body>
<form action="Artist.php" method="post">
<fieldset>
<p> <input type="submit" value=" Search Our Artists" /> </p>
</fieldset>
</form>
<?php
$con=mysqli_connect("localhost","ee2800","secret","ee2800");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if($_SERVER["REQUEST_METHOD"] == "POST")
$result = mysqli_query($con,"SELECT * FROM artist LIMIT 10");
if($_SERVER["REQUEST_METHOD"] == "POST")
echo " <h2>List of BadNoise Artists</h2>
<table border='0'>
<tr>
<th>Artist Number</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Search Songs</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['ArtistNumber'] . "</td>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo '<td> <a href="test4.php?name='. urlencode($row['ArtistNumber']).'">Search Songs</a></td>';
echo "</tr>";
echo "<td><div id=" . $row['ArtistNumber'] . "></div></td>";
}
echo "</table>";
$results->close();
mysqli_close($con);
?>
坏噪音
获取歌曲信息的文件
<?php
$row = $_GET['name'];
echo $_GET['name'];
$dbs = new mysqli("localhost", "ee2800", "secret", "ee2800");
$results = $dbs->query("SELECT * FROM songs WHERE ArtistNumber = {$_GET['name']};");
$rows = array();
while ($r = mysqli_fetch_array($results))
{
$rows[] = $r;
}
echo json_encode($rows);
?>
在while循环中尝试此操作
echo '<td> <a href="#'.urlencode($row['ArtistNumber']).'">Search Songs</a></td>';
echo';
还有你的js
$(window).on('hashchange', function(){
var qryStr = '?name='+ window.location.hash.split('#')[1]
$.getJSON( "test4.php"+qryStr, function(obj){
$.each(obj, function(key, value) {
$("#dynamic").append("<p>"+value.Title+"</p>");
});
});
return false;
});
$(窗口).on('hashchange',function()){
var qryStr='?name='+window.location.hash.split('#')[1]
$.getJSON(“test4.php”+qryStr,函数(obj){
$。每个(对象、功能(键、值){
$(“#动态”).append(“”+value.Title+””);
});
});
返回false;
});
要异步加载内容,您需要使用ajax或websocket,请发布您尝试的内容。我的问题是,如果需要将url替换为#,如何发送我最初url编码的艺术家编号。问题是div的id不是“动态的”,id是艺术家编号。回声“;对不起,我弄糊涂了!我相信你!我希望数据进入的div与正在传递的艺术家编号具有相同的ID。我说得通吗?有没有办法在js中识别div?通常,您会有一些id的固定部分和一些动态部分,然后使用jQuery作为目标,比如var name=window.location.hash.split('#')[1]$(“动态”+名称)
在php中,您可以呼出“
$(window).on('hashchange', function(){
var qryStr = '?name='+ window.location.hash.split('#')[1]
$.getJSON( "test4.php"+qryStr, function(obj){
$.each(obj, function(key, value) {
$("#dynamic").append("<p>"+value.Title+"</p>");
});
});
return false;
});