-3

我是在 PHP 中使用 JAVASCRIPT 的新手。我需要有人帮我解决我的问题。

设想:

我有一个表名"tbldata"

在我的数据库中,下面是我的 tbldata 数据。

fldBldgName      fldPlaylist
Bldg 1            playlist1
Bldg 1            playlist2
Bldg 1            playlist3
Bldg 2            playlist4

我有一个表单,它将显示带有复选框的fldBldgName的所有数据。然后,当我选中Bldg 1的复选框时,然后单击名称为“查看播放列表”的按钮,它将使用 javascript 或提示消息显示 bldg1 的所有 fldplaylist。

总结:

我想仅使用带有 OKAY 按钮的 javascript 在提示消息中显示Bldg1或其他 bldg 的所有数据。有办法吗?我已经搜索谷歌,但找不到我的问题的任何答案。

提前致谢。

4

1 回答 1

0

两种方法可以做到这一点。


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 版本。只会从数据库中获取所需的数据。


很抱歉伪代码,但如果我用正确的语法完整地写下所有内容,那么在我吃午饭的时候写它会花费很长时间;)

于 2013-08-26T11:34:38.750 回答