溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在php中使用ajax控制所有后臺(tái)函數(shù)

發(fā)布時(shí)間:2021-03-10 14:39:15 來源:億速云 閱讀:120 作者:Leah 欄目:開發(fā)技術(shù)

如何在php中使用ajax控制所有后臺(tái)函數(shù)?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

第一部分:ajax請求:主要是action這個(gè)參數(shù),LoginController是php的類名,login是LoginController這個(gè)類中的函數(shù)名

$('#submit').on('click', function (e) {
    e.stopPropagation();
    $.ajax({
      url: "../../controllers/Controller.php",
      data: {
        action: "LoginController/login",
        username: username,
        password: password
      },
      dataType: "text",
      type: 'POST',
      timeout: 10000,
      error: function () {
        alert("服務(wù)器超時(shí)");
      },
      success: function (data) {
          alert(data);
      }
    });
  });

第二部分:Controller.php,這個(gè)文件是調(diào)用其他具體的功能類的控制器,起到樞紐作用,主要是通過反射來實(shí)現(xiàn)

<?php

if (!empty($_REQUEST['action'])) {
  try {
    $action = explode('/', $_REQUEST['action']);
    $class_name = $action[0];
    $method_name = $action[1];
    require $class_name . '.php';
    $class = new ReflectionClass($class_name);
    if (class_exists($class_name)) {
      if ($class->hasMethod($method_name)) {
        $func = $class->getmethod($method_name);
        $instance = $class->newInstance();
        $func->invokeArgs($instance, array($_REQUEST));
        $result = $instance->getResult();
        echo $result;
      }
    }
  } catch (Exception $exc) {
    echo $exc->getTraceAsString();
  }
}
?>

第三部分:LoginController.php,這個(gè)文件是具體的功能類

<?php
class LoginController {
  
  private $result;
  function LoginController() {
    //初始化數(shù)據(jù)庫連接等參數(shù)
  }
  function login($args) {
    //具體的登錄邏輯
  }
  function getResult() {
    return $this->result;
  }
}
?>

關(guān)于如何在php中使用ajax控制所有后臺(tái)函數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI