首页 > 解决方案 > 在 php MVC 上使用 ajax 请求

问题描述

我正在用 php 和 javascript 制作游戏网站。所以我的类和我的数据在 php 中,我用 json 数据类型对它们进行编码。我调用了我的视图,它本身调用了 js 文件,由于 ajax 请求,该文件恢复了以 json 编码的 php 数据并使用 javascript 发布它们。我的问题是我不知道如何将它集成到我的 mvc 中,即通过一个操作通过我的索引而不是直接调用我的视图。

我的控制器:

class Controlleur
{
    public function __construct() {
        global $rep,$vues;

        try{
            $action=$_REQUEST['action'];
            switch($action){
                case NULL:
                    $this->homePage();
                    break;
                case "VoirScore":
                    $this->afficherScore();
                    break;
                default:
                    $dVueEreur[] =  "Erreur d'appel php";
                    require ($rep.$vues['error']);
                    break;
            }

        } catch (PDOException $e)
        {
            echo $e->getMessage();
            $dVueEreur[] =  "Erreur inattendue PDO!!! ";
            require ($rep.$vues['error']);

        }
        catch (Exception $e2)
        {
            $dVueEreur[] =  "Erreur inattendue!!! ";
            require ($rep.$vues['error']);
        }
    }

    public function homePage(){
        global $vues, $rep;

        require($rep . $vues['homePage']);
    }

我的索引:

session_start();

Autoload::charger();

new Controlleur();

我的 Js ajax 请求:

var Game = {
    cards: [],
    selected: [],
    score: 0,
    $board: $('[data-display="game-board"]'),
    $score: $('[data-display="score"]'),



    deal: function() {
        var self = this;
        var dealRequest = $.ajax({
            url: 'set.php?action=deal',
            type: 'GET',
            dataType: 'json',
            success: function(data) {
                self.cards = data;
                self.displayCards.call(self);
                self.setCardListeners();
                self.setPageListeners();
            }
        }); },

如果你需要更多解释或更多细节,你可以告诉我。

标签: javascriptphpjqueryajax

解决方案


这是调用其他视图的视图主页,set.js 是将 javascript 文件与 ajax 集成的文件,你可以看到我在没有任何操作的情况下给她打电话。

 <div class="menu box">
        <a href="#" class="logo">HyperSet</a>
        <a href="set.html">Jouer</a>
        <a href="index.php?action=VoirScore">Voir Les Scores</a>
        <a href="#">Règles</a>

    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript" src="vues/js/Settings.js"></script>

这是我的 set.html

<div class="wrapper">
    <h1>(TEST) Set</h1>
    <p>Find sets.</p>
    <p>Sets found:  <span data-display="score" class="score">0</span></p>
    <p>Number of Sets:  <span data-display="nbSets" class="nbSets"></span></p>

    <div class="game-board" data-display="game-board" style="display: block;" ></div>
</div>


</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="vues/js/set.js"></script>

推荐阅读