2

好的,伙计们,我知道这个问题之前已经被问过,但我对 PHP 和 JavaScript 还是很陌生,在我开始寻找这个问题的答案之前,我什至没有听说过 ajax,所以不理解以前的答案。

我正在创建一个网站,它本质上是 SQL 数据库中的一堆视频,它一次显示一个视频,我想要一个下一个和上一个视频按钮。

但是我无法克服这个 ajax 问题,所以我的问题更加简单。我已经看过这个问题/答案,并认为它几乎总结了我的要求:

当用户点击链接时如何运行 PHP 代码?

我已经复制了那个确切的代码,

    <script type="text/javascript">
       function doSomething() {
       $.get("backend.php");
          return false;
      }
     </script>

<a href="#" onclick="doSomething();">Click Me!</a>

在我的backend.php文件中,我实际上只是 <?php echo "Hello" ?>为了测试它,因此我的理解是,当我单击链接时,会触发 javascript onClick 事件,该事件又会调用backend.php文件,该文件说要在页面上打印“Hello”。但是,当我单击链接时,它什么也不做。

最终,显然我需要对我的 php 函数和调用变量以及所有这些东西变得更加复杂,但我喜欢自己解决大部分问题,所以我学习了。但是我坚持这一点。另外,虽然我在这里我会问另一件事,我想“回馈”该网站的用户以回答我的问题,但我只能在 HTML 和 CSS 中很好地回答其他人的问题,任何关于能够的建议在这里找到更简单的问题,所以我可以回答一些。

提前致谢 :)

4

6 回答 6

3

它什么也不做,因为你不对结果做任何事情。我的猜测是,在你举的例子中,它做了一些工作并且没有向用户显示任何东西。因此,如果您只是想在服务器上运行一些东西而不向用户返回任何输出,您可以简单地这样做,它会工作。

来自 jQuery.get()文档的示例

你做什么:

示例:请求 test.php 页面,但忽略返回结果。

$.get("test.php");

你想做什么:

示例:提示请求 test.php 的结果(HTML 或 XML,取决于返回的内容)。

$.get("test.php", function(data){
    alert("Data Loaded: " + data);
});
于 2012-08-23T17:46:03.323 回答
3

看看.get()文档。你使用不正确。

您至少应该传递数据(可选)并处理返回的数据:

$.get("backend.php",
    {
        // data passed to backend.php goes here in 
        //
        // name: value
        //
        // format. OR you can leave it blank.
    }, function(data) {
        // data is the return value of backend.php
        // process data here
    }
);

如果您传递数据,您可以backend.php使用$_GET. 在这种情况下:

$_GET['name'];
于 2012-08-23T17:46:10.917 回答
1
$.get("test.php", { name: "John", time: "2pm" }, function(data) {
   alert("Data Loaded: " + data);
 });

http://api.jquery.com/jQuery.get/

于 2012-08-23T17:46:19.637 回答
1

这会提醒数据。现在该函数只返回false。

$.get('backend.php', function(data) {
  alert(data);
});
于 2012-08-23T17:46:36.227 回答
1

您的代码不会按照您设置的方式打印到页面上;你是其中的一部分,因为你已经调用了页面,但是需要以某种方式处理响应。如果您在 Chrome 中打开开发人员工具,您可以单击“网络”选项卡并查看请求和响应,以验证您编写的代码是否确实有效,但现在您需要将响应放在某个地方。

通过将函数作为第二个变量传递给 $.get,您可以使您的请求显示在页面上。尝试这样的事情:

$.get("backend.php", function (data) { $('body').append(data); } );
于 2012-08-23T17:50:49.627 回答
0

您的代码未处理该数据。因此,您应该使用以下代码:

$.get("backend.php", function(response) {
    alert(response);
  })

或者,要在 UI 上显示该数据,请将其分配给任何 html 元素。

如需更多了解,请访问:jQuery.get()链接

于 2012-08-23T17:50:50.000 回答