使用ajax / javascript调用php函数

时间:2012-08-23 17:43:53

标签: php javascript ajax

好的家伙我知道之前已经问过这个问题,但我对PHP和JavaScript很新,甚至在我开始寻找这个问题的答案之前甚至没有听说过ajax,所以不理解以前的答案。

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

然而,我无法通过这个ajax的事情,所以我的问题更简单。我看过这个问题/答案并认为它几乎总结了我的要求:

How do I run PHP code when a user clicks on a link?

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

    <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事件被触发,而后者又调用{{ 1}}文件,表示向页面打印“Hello”。但是当我点击链接时它什么也没做。

最终显然我需要通过我的php函数和调用变量以及所有这些内容来获得更复杂的东西,但我想在大多数情况下为自己解决问题,所以我学习。但是我坚持这一点。此外,我在这里,我会问另一件事,我想“回馈”网站的用户回答我的问题,但我只能在HTML和CSS中做得很好,以回答其他人的问题,任何建议,能够在这里找到更简单的问题所以我可以回答一些问题。

提前致谢:)

6 个答案:

答案 0 :(得分:3)

它没有任何结果,因为你不对结果做任何事情。我的猜测是,在你拍摄的例子中,它做了一些工作并且没有向用户显示任何内容。因此,如果您只是想要在服务器上运行某些内容而不向用户返回任何输出,那么您可以简单地执行此操作,并且它可以正常工作。

来自jQuery的.get() documentation

的示例

你做了什么:

  

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

$.get("test.php");

您想做什么:

  

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

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

答案 1 :(得分:3)

看看.get() documentation。你的用法不正确。

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

$.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'];

答案 2 :(得分:1)

$.get("test.php", { name: "John", time: "2pm" }, function(data) {
   alert("Data Loaded: " + data);
 });

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

答案 3 :(得分:1)

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

$.get('backend.php', function(data) {
  alert(data);
});

答案 4 :(得分:1)

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

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

$.get("backend.php", function (data) { $('body').append(data); } );

答案 5 :(得分:0)

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

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

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

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