jquery Ajax url指向php函数

Posted

技术标签:

【中文标题】jquery Ajax url指向php函数【英文标题】:jquery Ajax url point to php functions 【发布时间】:2015-09-11 10:13:08 【问题描述】:

您好,是否可以使用 Ajax 从 php 函数中检索数据?

我希望我在 ajax 中的 url 指向我的一个函数。请在下面查看我的代码。

像这样:

    <?php
     class employee

        public function __construct()
        

        public function fName($fName)
         echo $fName;
        

        public function lName($lName)
         echo $lName;
        
     

        ?>


  <div id="fName"></div>

        <script type="text/javascript">
         $.ajax(
                type: 'POST',
                url: "classes.php", <!-- HERE I want to target the fname function-->
                success: function(result)
                 fname.html(result);
                        );

        </script>

到目前为止,我所做的是创建一个新的 php 页面,其中包含这样的代码。

<?php
$employee = new employee();
$employee->fName();

然后将 ajax url 指向那个新的 php 页面。

【问题讨论】:

这看起来设置正确。可能因为 fName 函数返回一个空值,您没有得到任何回报? 是的,但我想要的是我想直接与我的班级交流并将 url 指向它的功能。而不是在其他页面中创建新对象。这可能吗? 【参考方案1】:

假设此代码按照您的问题中所写的那样工作

<?php
$employee = new employee();
$employee->fName();

您可以将参数传递给您的 PHP 脚本,然后决定调用哪个函数,如下所示:

jQuery

$.ajax(
  type: 'GET',
  url: "classes.php?func=fname",
  success: function(result) 
    $("fname").html(result);
  
);

PHP - classes.php:

<?php
$employee = new employee();

$func = @$_GET["func"];
switch($func) 
    case "fname":
       echo $employee->fName(); 
       break;
    case "lname":
       echo $employee->lName(); 
       break;
    default:
       break;

【讨论】:

我想要的是一些快捷方式,而不是为每个函数创建新的 php 页面,而是直接在类中调用该函数。到目前为止,我相信这是最接近我想要的 正如您所描述的那样,这是不可能的。 PHP 在运行任何 HTML/JS 之前在服务器上运行。执行 PHP 后,结果将发送到浏览器,然后浏览器执行 JS。两者在同一页面上没有实时通信。这个答案是典型的与 PHP 通信的模式 我明白了,感谢您的洞察力并给了我这个想法。我真的很想避免创建大量页面。我希望我的 ajax url 只指向一页。谢谢你的代码,它对我有帮助。 您可以做一件事来防止一遍又一遍地重新创建对象,但它有利也有弊。这是一个全新的话题,所以如果您想仔细阅读它,请随时提出新问题。但是,上述模式很简单。你可能会发现这个有趣的阅读:***.com/questions/132194/… 我刚刚意识到将所选函数放入 data: func: fname 中,而不是使用 url: "classes.php?func=fname",嗯,很酷。谢谢你的主意!【参考方案2】:

url 属性必须是 url .. 在您的情况下,它可能指向 "/classes.php" ,假设文件位于网络服务器的文档根目录中

函数 fName 需要由该 url 中的代码调用。

所以你的文件“/classes.php”应该是这样的

<?php 
class Employee   
  protected fName;
  protected lName;
  function __construct($f, $l) 
      $this->fName = $f;
      $this->lName = $l;
  
  public function getFName()
     return $this->fName ;
  
  public function getLName()
     return $this->lName ;
  


$employee = new Employee("John" , "Doe");
echo $employee ->fName();

【讨论】:

是的,但我有两个功能,并且都有回声。我怎样才能只从我的 fname 函数中检索数据? 我只想与一页通信。该代码似乎只检索 fname。如果我想检索 lname 怎么办?

以上是关于jquery Ajax url指向php函数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有 json 和 php 的 jquery 的 $.ajax 函数上传文件

PHP怎么接收jQuery的Ajax post过来的值?

使用jQuery Ajax和PHP从URL上传图像

使用 jQuery ajax 函数将 php 值发送到 php 函数

PHP 从 url 获取版本

创建对 PHP 函数的 jQuery AJAX 请求