5

我正在使用 Jquery 和 PHP 构建一个小型应用程序。Jquery (index.html) 为用户添加表单字段并将它们发送到 PHP 脚本 (pdo.php)。PHP 脚本从数据库中获取值,并使用用户给定的值和数据库中的值进行一些计算。总和返回到表单页面。

index.html <-> pdo.php

因此我试图理解 PHP MVC 模式我的问题是

a.) 这在这种情况下是有意义的。

b.) 如果是这样,那部分将是什么。index.html --> 视图;pdo.php --> 模型;控制器 --> ?

感谢您的帮助,

托尼

剪下

jquery ... index.html

$(document).ready(function(){
    $("#buttonAjax").click(function(){
        var name = encodeURI($("#name").val());

            $.ajax({
                type: "POST",
                url: "pdo.php",
                data: "name="+name,
                success: function(data){
                    var json = $.parseJSON(data);
                    $("#output").html(json.summe);
                    talk(json.say);
                }
            });

    });

    function talk (say){
        jQuery.noticeAdd({text: say,stay: false});
    }

     });

pdo.php

/* DB Connection */
    $strDbLocation = 'mysql:dbname=test;host=localhost';
    $strDbUser = 'root';
    $strDbPassword = 'root';

    try{
        $objDb = new PDO($strDbLocation, $strDbUser, $strDbPassword);
    }
    catch (PDOException $e){
        echo 'Failure: ' . $e->getMessage();
    }


/* Fetch POST Data */
    $id = $_POST['name'];


/* Build query */
    $dbSelect =  $objDb->prepare("SELECT Age,Name FROM Benutzer WHERE id = :id");
    $dbSelect -> setFetchMode(PDO::FETCH_ASSOC);  
    $dbSelect -> bindParam('id', $id);
    $dbSelect -> execute();


/* Output + Calculate */    
    while($row = $dbSelect->fetch()) {  
        $total =  $row['Age'] / 100 . "<br />";
    }  


/* Return to User */
    if(!empty($total)){ 
        $ret = Array("summe" => "Summe: " . $total, "say" => "all right");
        echo json_encode($ret); }
    else{
        $ret = Array("summe" => "Nothing for you",  "say" => "nothing for you");
        echo json_encode($ret); 
    }
4

2 回答 2

3

在标准的 MVC webapp 中,路由与控制器操作相匹配。这些控制器动作可以与模型交互[后者又与数据库交互]或执行其他一些与模型无关的计算,并呈现一个视图。很明显,这index.html是视图。而且我认为您将控制器和模型捆绑在pdo.php.

我真的在评论中推荐 PeeHaa 的链接。这个答案写的很好。

话虽如此,制作 web 应用程序有许多架构模式。你的可能不是 MVC。一些不是 MVC 的突出框架是 SproutCore(基于视图的控制器)和 JSP 页面(单控制器)。

于 2012-07-03T07:47:51.763 回答
0

控制器的使用是使用 php 来控制 html 中的表单元素。例如:

/ * Fetch POST Data */
    $id = $_POST['name'];

模型的使用仅用于 db 使用(插入、选择、..)

于 2012-07-03T07:43:30.117 回答