簡體   English   中英

是否可以在Javascript(Ajax-> PHP)中發布到類方法?

[英]Is it possible to POST to a class method in Javascript (Ajax -> PHP)?

我正在使用Ajax處理帶有進度條的文件上傳,目前我發布到上傳腳本:

          function uploadFile(revision) 
      {
          var file1 = _("fileToUpload").files[0];

          // FIXME: Developer Option
          alert(file1.name+" | "+file1.size+" | "+file1.type);

          var formdata = new FormData();
          formdata.append("fileToUpload", file1);
          formdata.append("revision", revision);
          var ajax = new XMLHttpRequest();
          ajax.upload.addEventListener("progress", progressHandler, false);
          ajax.addEventListener("load", completeHandler, false);
          ajax.addEventListener("error", errorHandler, false);
          ajax.addEventListener("abort", abortHandler, false);
          ajax.open("POST", "../file_upload_parser.php");
          ajax.send(formdata);    
      }

但是,如果可能的話,我想將我的上載移到一個類方法中(假設有一個名為FileHandler的類,我希望能夠開機自檢到它的upload()函數。

是否可以將其發布到類的上載方法?

顯然,我希望能夠保留加載欄的功能,並且如果有人需要查看Javascript的源代碼,則此鏈接指向我從本質上復制粘貼的代碼並進行了一些更改的地方(upload_form.html ):

JavaScript文件上傳

據我所知,你做不到。 您可以做的是為您的類創建一個處理程序文件,例如,假設我們有這個PHP類,

<?php
class Car {     
    function getCarType() {
        return "Super Car";
    }
}
?>

然后在您的處理程序文件中

<?php
require_once 'Car.php';

if(isset($_POST['getCarType'])) {
     $car = new Car();
     $result = $car->getCarType();
}

echo $result;
?>

您可以將AJAX請求發布到處理程序,可以為每個請求創建特定的處理程序,也可以擁有通用的AJAX處理程序,但是該文件可能變得很大且難以維護。

這不是關於javascript的問題,而是關於“如何在PHP中正確路由請求?”嘗試查看類似Symfony的Router的內容: https : //symfony.com/doc/current/book/routing.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM