代码之家  ›  专栏  ›  技术社区  ›  Andrew

使用Ajax向PHP脚本发送数据时出现问题

  •  0
  • Andrew  · 技术社区  · 7 年前

    当通过Ajax将表单数据发送到PHP脚本时,我遇到了一个问题。发送数据时,我会收到这种错误

    致命错误:找不到类libs\controller

    我已经编写了自己的MVC项目结构,如果我只是使用post请求发送数据,那么它的工作就很好,但是使用ajax发送数据时会收到这个错误。

    use Libs\Controller;
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    
    class Contact extends Controller {
      //rest code to send email with PHPMailer
    }
    

    这是JS脚本

    $("#contact-form").on('submit', function (e) {
        $(".validmessage").css("display", "block");
        e.preventDefault();
    
        $.ajax({
            url: "/../../app/controllers/Contact.php",
            type: "POST",
            data: $(this).serialize(),
            success: function (data) {
                $("#form_output").html(data);
            },
            error: function (jXHR, textStatus, errorThrown) {
                alert(errorThrown);
            }
                });
            });
    

    我的文件结构:

    controllers
     - Contact.php
    -libraries
      - Controllers.php
      - Core.php
      - Database.php
    

    使用psr autoloader在index.php文件中加载类

    1 回复  |  直到 7 年前
        1
  •  3
  •   pr1nc3    7 年前
       require '../libraries/Controllers.php'
    
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\Exception;
    
    
        class Contact extends Controller {
          //rest code to send email with PHPMailer
        }
    

    您需要后退一步才能访问控制器。现在你在 contact.php 所以您不能“看到”库文件夹。你需要后退一步 ../ 然后访问文件夹和文件。