在我的MySQL数据库中,有一列VideoID和VideoCode
我在 backend.php 中有一个PHP函数,旨在选择列表中的下一个视频,如下所示:
$VideoID = 0;
function nextvideo(){
global $VideoID;
$VideoID = $VideoID + 1;
$sql = mysql_query("SELECT * FROM Videos WHERE VideoID = '".$VideoID."'");
$result = mysql_fetch_array($sql);
return $result[2];
}
$VideoCode = nextvideo();
然后,我的前端文件中的$VideoCode
变量echo
位于提供嵌入视频的网址内。
这一切都很好并且有效,每次调用nextvideo()
函数时,它都会正确选择下一个$VideoCode
。但是我想要实现一个' next'允许用户有效调用nextvideo()
函数并因此加载下一个视频的按钮。所以我知道我需要使用AJAX和.get()
函数,但我不知道如何使用它并尝试阅读它。到目前为止,我有这个:
<script type="text/javascript">
function next() {
$.get("backend.php", *1*, *2*);
return false;
}
</script>
<a href="#" onclick="next();">Next</a>
我知道在$.get()
函数中的 backend.php 后我需要更多信息,*1*
是要发送到后端文件的内容*2*
一旦发回,结果如何处理。这是我被困的地方。
*1*
是否需要nextvideo()
,因为我希望调用PHP函数,然后*2*
会刷新页面以便{{1}变量更新,下一个视频更新?阅读文档,我知道它需要看起来像:
$VideoCode
但是$.get("test.php", function(data){
alert("Data Loaded: " + data);
});
是什么?
答案 0 :(得分:3)
function(data)
是一个javascript函数,在请求完成时调用,传入变量data
,这是从服务器返回的页面。换句话说,当请求完成时,该函数中的代码将被执行,变量data
将包含服务器从您的请求中发回的任何内容。
你想做的是这样的事情
<script type="text/javascript">
function next() {
var currentVideoId = $('#videoId').val();
$.get("backend.php", { videoId: currentVideoId }, function(data) {
$('#video').html(data);
$('#videoId').val($('#videoId').val() + 1);
});
return false;
}
</script>
<a href="#" onclick="next();">Next</a>
您有一个ID为videoId
的隐藏输入字段,其中包含当前视频ID的值,以及一个ID为video
的元素,该元素是要使用新视频更新的元素。
您的PHP脚本如下所示:
$VideoID = intval($_GET['videoId']) + 1;
$sql = mysql_query("SELECT * FROM Videos WHERE VideoID = '".$VideoID."'");
$result = mysql_fetch_array($sql);
echo $result[2];
这接受AJAX函数传入的$ _GET变量,并打印出发送到javascript中data
变量的视频代码。
希望这有帮助,如果你仍然不确定,请问!
答案 1 :(得分:0)
功能签名是:
jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
url
:您要向其发送“获取”http请求的网址。它可能是一个html文件,一个纯文本文件,一个图像等。在你的情况下,它是一个php文件,它会在你每次调用它时完全自我执行。
[data]
:可选参数,您要与请求一起发送的数据,以键 - 值对的形式。例如,您可以发送请求:{id:1},您的服务器(在这种情况下为PHP脚本)将接收并可用于向您的客户端提供相应的响应(在这种情况下您的javascript)
[success]
:可选参数,服务器应答后要执行的回调函数。它是一个可选参数,但是,一旦服务器完成它的工作并为您提供响应,您很可能总是希望做一些事情。
在您提供的示例中:
function(data){
alert("Data Loaded: " + data)
};
是一个匿名函数(未命名)。执行时,该函数最多可以接收3个参数:success(data, textStatus, jqXHR)
。我们对从服务器发回的数据感兴趣。它可以是任何东西:text,xml,html,json等。因为它只是jquery文档网站上的一个例子,该函数仅警告(来自浏览器的恼人的消息框)它收到的数据,并且对它没有任何用处。我不确定我理解你在特定情况下想做什么,但我希望我的一般答案能帮到你。