我是想用PHP实现mvc的模式,现在假设有这样一种场景:用户在A.php页面点击链接或点击按钮发出了请求,B.php接受这个请求,然后利用已经在C.php中实现好的业务类进行业务处理(比如数据库查询等),然后B.php跳转到D.php中显示了业务处理得到的结果。
B.php相当于是控制器,D.php需要得到B.php的结果数据,想请问怎样才能得到呢?这个数据可能是一个普通变量,可能是数据库查询的结果集,可能是数组等,有什么好的办法吗?对于普通的变量(如$n=1),我用<input type="hidden">隐藏表单传递可以实现,但是这种办法好像不能传递数组、数据库查询的结果集,请各位帮忙

解决方案 »

  1.   

    这句话是错误的
    foreach($yourValue as $key => $value){
      echo "<input type=\"hidden\" name=\"yourarray[]\"  value=\"$value\" />";
    }
      

  2.   

    感谢您的回复:
    这样做可以的吧?我用这种办法把值传过去了呀:
    <form name="form" action="<?php echo $page;?>" method="post">
    <?php
    foreach($this->paramarray as $param=>$value)
    {
    ?>
    <input type="hidden" name="<?php echo $param;?>" value="<?php echo $value;?>"/>
    <?php
    }
    ?>
    </form>
    <script language="javascript">document.form.submit()</script>
    我想问的是:在B.php中有一个数组或数据库结果集,在D.php中怎样得到或者引用这个数组(数据库结果集)?
      

  3.   

    D.php
    include_once 'B.php';
    调用B.php中的函数 获取返回值
      

  4.   

    不用建多个 hidden ,建一个就好了,把数组或者 数据集 ,json 方式传输json_encode()
    json_decode()这样传输方便
      

  5.   

    有没有什么办法把数据传到D.php中呢,那样感觉B.php才起到了控制作用,B.php更主动一些,个人理解,呵呵
      

  6.   

    你的 B控制器是采用 switch($action) {case 'index':$result=C里的方法返回值
    include(D.php);
    break;}//不知 这个方法可行不如果业务不是复杂,可以采用,缺点就是控制器里 include