在我的 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
位于提供嵌入视频的 URL 内。
这一切都很好并且有效,每次调用 nextvideo()
函数时,它都会正确选择下一个 $VideoCode
。不过,我想实现一个“下一个”按钮,允许用户有效地调用 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*
就是什么这将刷新页面,以便更新 $VideoCode
变量并更新下一个视频?阅读文档我知道它需要看起来像:
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});
但是什么是函数(数据)
?
最佳答案
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
变量的视频代码。
希望这对您有所帮助,如果您仍有疑问,请询问!
关于php - JQuery $.get() 中 function(data){} 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099305/