有两种方法可以做到这一点。
1. 通过在服务器上使用 php 生成 JavaScript 来做到这一点。
小例子:
PHP(伪代码)
$sql = // ... (your SQL query);
$list = // ... (your result objects from SQL);
// Build a html of your received items you want to show
$html = '<div id="playlists">';
foreach(listitem in list)
{
$html .= '<div onclick="alert(\''.listitem->getBldgData().'\'">'.listitem->getTitle().'</div>';
}
$html .= '</div>';
这种可能性非常简单,但必须在客户端显示之前加载您需要的所有内容。如果您的列表增长并且列表可能是 listitems 数据,它也会占用大量资源。我不建议使用这种风格。
2. 通过仅生成播放列表列表并在每次单击特定播放列表时,使用来自服务器的 ajax 请求加载 bldg 来执行此操作。
网站的 PHP(伪代码)
$sql = // ... (your SQL query);
$list = // ... (your result objects from SQL);
// Build a html of your received items you want to show
$html = '<div id="playlists">';
foreach(listitem in list)
{
$html .= '<div onclick="getBldgData(\''.listitem->getId().'\')">'.listitem->getTitle().'</div>';
}
$html .= '</div>';
JavaScript/AJAX(伪代码)
包含jQuery库以更好地处理 ajax 调用。
function getBldgData(id){
$.ajax("yourUrl/PathTo/PHPWebService", { data: id })
.success(function(data){
// do something with the received BldgData from the webservice (JSON)
})
.error(function(err){
// message box with the error
alert(err);
});
};
Web服务的PHP(伪代码)
$id = $_GET['data'];
$sql = ... // SQL Statement to get the Bldg data for this Playlist (Id);
$BldgData = ... // received data;
$formatBldgDataAsJSON = ... // do something to transform data which should be proceeded on client side.
echo $formatBldgDataAsJSON;
我会重新开始使用第二个 AJAX 版本。只会从数据库中获取所需的数据。
很抱歉伪代码,但如果我用正确的语法完整地写下所有内容,那么在我吃午饭的时候写它会花费很长时间;)