Ok,你显然已经自己规划好了步骤,我已经基于您的观点写了一篇博客文章
在这里。以下是该帖子的内容,稍作添加以使其更具体地针对您的“Netflix”工具提示。
用户单击链接
所以,您需要的第一件事是一些前端代码,告诉链接发出ajax请求而不是实际链接。我建议您使用jQuery来为您做繁重的工作,因此如果您尚未这样做,则首先需要将jQuery脚本包含在页面中,要执行此操作,请将此行添加到HTML文件的头部。
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
接下来,您需要为链接添加一个类,例如,您的链接可能如下所示:
<a href="ajax.php?var=value" class="ajax_link">Link</a>
你会发现链接是到提供数据的ajax页面,你通过GET传递了一个名为var的变量到那个页面,稍后我们会讨论这个问题,你还将类设置为“ajax_link”,我们将使用它来从jQuery引用链接。
现在您需要编写一些jQuery来处理链接。为此,您需要在body末尾打开一个
<script language="javascript">
标签,并放置以下代码:
$(".ajax_link").click(function(e) {
e.preventDefault();
var link = $(this).attr('href');
$.ajax({
url: link,
cache: false
}).done(function( html ) {
});
});
我稍后会回到工具提示代码。
使用AJAX传递到外部文件的变量
现在我们需要创建PHP文件ajax.php,这个文件需要连接到数据库并进行必要的查询。首先我会开始编写文件并从GET中获取变量。请参见下面的代码。
<?php
$var = $_GET['var'];
这将创建变量$var,其包含在上述HTML链接中设置的值'value'。您可能希望转义该值,进行一些验证以保护自己免受注入攻击,但我不会在此处涉及到这些。
外部文件使用变量查询MySQL数据库
接下来,您需要连接并查询数据库,然后回显您返回的任何内容。以下是一些代码,用于从名为'data_table'的表中返回列'information'的值,其中某个值等于您的$var。
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db("examples",$dbhandle)
or die("Could not select examples");
$result = mysql_query("SELECT information FROM data_table WHERE value='$var'");
while ($row = mysql_fetch_array($result)) {
echo $row{'information'};
}
mysql_close($dbhandle);
如需了解有关查询数据库的更多信息,请参阅本教程。
由于您将以 Netflix 风格显示工具提示,因此我假设您希望在工具提示中包含许多不同的数据。希望您能够根据传递的“var”提取出所有所需的信息,并调整上述代码。您当然可以传递不止一个变量,例如 ajax.php?var1=value1&var2=value2
,然后在 PHP 中检索它,例如 $var1 = $_GET['var1']; $var2 = $_GET['var2'];
等。
然后,您需要格式化 HTML,以便在 PHP 页面中显示在工具提示中的 AJAX 请求返回有效的 HTML,但是我在这里不会详细介绍。
查询结果显示在工具提示中
设置这两个页面后,第一页将向 ajax 页面发送一些值,ajax 页面将回显来自数据库的相应信息,该信息将由第一页接收到 JavaScript 变量html
。
这个阶段的最后一步是将返回的文本显示为工具提示。首先,测试页面是否正常工作可能是一个好主意,其中一种简单的方法是显示一个警报,其中包含返回的信息(您也可以记录到控制台)。您可以通过向ajax .done函数添加一些代码来实现这一点:
.done(function( html ) {
alert("text: " + html);
});
一旦完成此操作,您应该能够打开页面,单击链接,然后应该会看到弹出警报框显示所需文本。如果在警报框中的“text:”后面没有任何内容,则表示发生了错误,您可能需要检查代码是否正确。如果成功,则继续显示工具提示。
有许多可用的jQuery工具提示插件,其中之一称为
qTip。这将允许您创建工具提示并在单击它们时显示它们。您需要下载JavaScript文件和相关CSS以获取工具提示,然后将一些代码添加到.done函数中以创建和显示工具提示。
要将qTip添加到您的页面,请访问qTip网站并下载js和css的最新版本。然后,您必须像这样引用头文件:
<link type="text/css" rel="stylesheet" href="jquery.qtip.min.css" />
而 JavaScript 代码如下:
<script type="text/javascript" src="jquery.qtip.min.js"></script>
这里假设CSS和JS文件与您的索引页面在同一个文件夹中,如果不是,请修改这些链接以指向您放置这些文件的位置。
现在,您只需要向.done函数添加以下内容即可:
$(this).qtip({
content: {
text: html
}
});
$(this).qtip('toggle', true);
这段代码将创建一个 qTip,其中包含从 AJAX 请求返回的内容。由于您想要类似于 Netflix 工具提示的工具提示,因此您的页面应该返回一些 HTML,这些 HTML 将在工具提示内呈现。然后,一旦创建了工具提示,它将在单击时切换以显示工具提示。然后当您悬停/离开时,工具提示将显示/隐藏。
有关样式化 qTip 的更多信息,请参阅其网站。