首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AJAX请求和PHP类函数

AJAX请求和PHP类函数
EN

Stack Overflow用户
提问于 2013-07-05 20:38:07
回答 8查看 56.8K关注 0票数 23

如何从ajax调用中调用PHP类函数

animal.php文件

代码语言:javascript
运行
复制
class animal
{     
  function getName()
  {
    return "lion";
  }
}

然后在我的ajax.php文件中,我有一个ajax请求,需要从getName函数获取值

怎么做那个getName()函数我可以这样做吗?

代码语言:javascript
运行
复制
<script type=text/javascript>
  $.ajax({
    type: "POST",
    data: {
      invoiceno:jobid
    },
    url: "animal/getName",
    beforeSend: function() {
    },
    dataType: "html",
    async: false,
    success: function(data) {
      result=data;
    }
  });    
</script>
EN

回答 8

Stack Overflow用户

发布于 2013-07-05 21:13:15

我的答案与Surreal Dreams answer相同,但使用了代码。

第一。类动物是可以的。让它保持原样:

animal.php

代码语言:javascript
运行
复制
<?php

class animal
{     
  function getName()
  {
    return "lion";
  }
}

下一个。创建新的animalHandler.php文件。

代码语言:javascript
运行
复制
<?php
require_once 'animal.php';

if(isset( $_POST['invoiceno'] )) {
     $myAnimal = new animal();
     $result = $myAnimal->getName();
     echo $result;
}

终于来了。更改您的Javascript。

代码语言:javascript
运行
复制
<script type=text/javascript>
  $.ajax({
    type: "POST",
    data: {
      invoiceno:jobid
    },
    url: "animalHandler.php",
    dataType: "html",
    async: false,
    success: function(data) {
      result=data;
    }
  });    
</script>

这就是。

票数 43
EN

Stack Overflow用户

发布于 2013-07-05 20:49:13

您需要一个额外的脚本,因为您的动物类本身不能做任何事情。

首先,在另一个脚本文件中,包含animal.php。然后创建一个动物类的对象-让我们称它为myAnimal。然后调用myAnimal->getName()并回显结果。这将提供对Ajax脚本的响应。

使用这个新脚本作为Ajax请求的目标,而不是以animal.php为目标。

票数 8
EN

Stack Overflow用户

发布于 2013-11-21 00:03:27

目前在php中使用OOP:

ajax.html程序(客户端层) -> program.php (中间层) -> class.php (中间层) -> SQL调用或SP (db层)

当前使用DotNet的OOP:

ajax.html程序(客户端层) -> program.aspx.vb (中间层) -> class.cls (中间层) -> SQL调用或SP (db层)

我在现实生活中的解决方案是:做面向对象分析,而不是面向对象。

因此,我为每个表发一个类一个文件-使用它们适当的ajax调用,并使用-as参数选择相应的ajax调用(即模式)。

/* mytable.php */

代码语言:javascript
运行
复制
<?
session_start();
header("Content-Type: text/html; charset=iso-8859-1");
$cn=mysql_connect ($_server, $_user, $_pass) or die (mysql_error());
mysql_select_db ($_bd);   
mysql_set_charset('utf8');

//add
if($_POST["mode"]=="add")   {
    $cadena="insert into mytable values(NULL,'".$_POST['txtmytablename']."')"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
};

//modify
if($_POST["mode"]=="modify")    {
    $cadena="update mytable set name='".$_POST['txtmytablename']."' where code='".$_POST['txtmytablecode']."'"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
};

//erase
if($_POST["mode"]=="erase") {
    $cadena="delete from mytable where code='".$_POST['txtmytablecode']."'"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
};

// comma delimited file
if($_POST["mode"]=="get")   {
    $rpta="";
    $cadena="select * from mytable where name like '%".$_POST['txtmytablename']."%'"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
    while($row =  mysql_fetch_array($rs)) {
        $rowCount = mysql_num_fields($rs);
        for ($columna = 0; $columna < $rowCount; $columna++)    {
            $rpta.=str_replace($row[$columna],",","").",";
        }
        $rpta.=$row[$columna]."\r\n";
    }
    echo $rpta; 
};

//report
if($_POST["mode"]=="report_a")  {
    $cadena="select * from mytable where name like '%".$_POST['txtmytablename']."%'"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
    while ($row=mysql_fetch_array($rs)) {
        echo $row['code']." ".$row['name']."<br/>"; // colud be a json, html
    };  
};

//json
if($_POST["mode"]=="json_a")    {
    $cadena="select * from mytable where name like '%".$_POST['txtmytablename']."%'"; 
    $rs=mysql_query($cadena,$cn) or die(mysql_error().' : '.$cadena); 
    $result = array();
    while ($row=mysql_fetch_array($rs)) {
        array_push($result, array("id"=>$row['code'],"value" => $row['name']));
    };  
    echo json_encode($result);
};
?>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17489109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档