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 函数上传文件