JQuery $ .get()中函数(数据){}的用途

时间:2012-08-23 20:17:10

标签: php javascript jquery ajax

在我的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); }); 是什么?

2 个答案:

答案 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文档网站上的一个例子,该函数仅警告(来自浏览器的恼人的消息框)它收到的数据,并且对它没有任何用处。我不确定我理解你在特定情况下想做什么,但我希望我的一般答案能帮到你。