【问题标题】:Calling a php function using ajax/javascript使用 ajax/javascript 调用 php 函数
【发布时间】:2012-08-19 07:16:27
【问题描述】:

好吧,伙计们,我知道以前有人问过这个问题,但我对 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 文件中,我确实只是得到了&lt;?php echo "Hello" ?&gt; 来测试它,因此我的理解是,当我单击链接时,会触发 javascript onClick 事件,进而调用backend.php 文件,它说要在页面上打印“Hello”。但是,当我单击链接时,它什么也不做。

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

提前致谢:)

【问题讨论】:

    标签: php javascript ajax


    【解决方案1】:

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

    示例来自 jQuery 的 .get() documentation

    你做什么:

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

    $.get("test.php");
    

    你想做什么:

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

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

    【讨论】:

    • 谢谢,我没有意识到我实际使用的是来自 JQuery 库,我将去文档并阅读 .get() 函数,看看我是否能弄清楚。
    【解决方案2】:

    看看.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
        }
    );
    

    如果您传递数据,您可以使用$_GETbackend.php 上检索它。在这种情况下:

    $_GET['name'];
    

    【讨论】:

      【解决方案3】:
      $.get("test.php", { name: "John", time: "2pm" }, function(data) {
         alert("Data Loaded: " + data);
       });
      

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

      【讨论】:

      • 发帖?这是哪里来的果子?
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        您的代码不会按照您设置的方式打印到页面上;您是其中的一部分,因为您已经调用了该页面,但需要以某种方式处理响应。如果您在 Chrome 中打开开发者工具,您可以点击 Network 标签并查看请求和响应,以验证您的编码是否实际工作,但现在您需要将响应放在某个地方。

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

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

        【讨论】:

          【解决方案6】:

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

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-02-02
            • 1970-01-01
            • 2011-05-08
            • 2011-01-17
            相关资源
            最近更新 更多