0

在我的 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变量位于提供嵌入视频的 url 中。echo

这一切都很好,它可以工作,每次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>

我知道在函数中的backend.php$.get()之后我需要更多信息,*1*作为要发送到后端文件的内容,以及*2*在返回结果后如何处理结果。这就是我卡住的地方。

是否*1*需要是nextvideo()因为那是我希望调用的 PHP 函数,然后*2*是刷新页面以便$VideoCode更新变量并更新下一个视频的东西?阅读文档我知道它需要看起来像:

$.get("test.php", function(data){
    alert("Data Loaded: " + data);
});

但什么是function(data)

4

2 回答 2

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 变量,并打印出发送到datajavascript 中的变量的视频代码。

希望这会有所帮助,如果您仍然不确定任何事情,请询问!

于 2012-08-23T20:31:53.960 回答
0

函数签名是:

jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

url:您要向其发出“get”http 请求的 url。它可以是 html 文件、纯文本文件、图像等。在您的情况下,它是一个 php 文件,每次调用它时都会完全执行。

[data]: 可选参数,您要随请求发送的数据,以键值对的形式。例如,您可以发送您的请求:{ id : 1 },您的服务器(在这种情况下为 php 脚本)将接收并可以用来为您的客户端(在这种情况下为您的 javascript)提供适当的响应

[success]: 可选参数,服务器应答后执行的回调函数。它是一个可选参数,但是一旦服务器完成它的工作并为您提供响应,您很可能总是想要做某事。

在您提供的示例中:

function(data){
   alert("Data Loaded: " + data)
};

是一个匿名函数(未命名)。执行时,该函数将接收最多 3 个参数: success(data, textStatus, jqXHR). 我们对从服务器发回的数据感兴趣。它可以是任何东西:文本、xml、html、json 等。由于它只是 jquery 文档网站上的一个示例,因此该函数仅警告(来自浏览器的烦人消息框)它接收到的数据,实际上并没有什么用处. 我不确定我是否了解您在特定情况下想要做什么,但我希望我的一般回答会对您有所帮助。

于 2012-08-23T20:54:24.843 回答