为什么它会使用codeigniter将我指向错误的网址,

时间:2017-08-29 02:55:52

标签: php codeigniter

我有一个两个控制器函数,Index函数和generateReport函数,当我点击导出按钮时它应该指向我的URI index.php / schoolScoreCardReport / generateReport,问题是它引导我到这个URI index.php / generateReport,我不知道为什么,这是我的代码

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class schoolScoreCardReport extends PG_Controller {

public function __construct(){
parent::__construct();

}


public function index(){

            if(isset($_POST['Export'])){
                $this->generateReport();

            }

    $this->layout->view('report/index');
}

   public function generatePOMEDetailReport(){
     $this->layout->view('test/index');
}



}

请帮助我,谢谢你这里是索引功能的html视图

  <table>
            <?php echo form_open('schoolScoreCardReport'); ?>
            <tr><td>
              <label>Region:</label>
              <select name="region_name" style="width:150px">
              <option value = "1">a</option>
              </select>
            </td></tr>
            <tr><td>
            <input type="submit" id="btn_export"  value="Export" name="Export">
            </td></tr>
            <?php echo form_close(); ?>
        </table>

3 个答案:

答案 0 :(得分:1)

除非你有一些路线影响请求,否则我相信发送到form_open()的参数应该如下......

<?php echo form_open('schoolScoreCardReport/generatePOMEDetailReport'); ?>

由于generatePOMEDetailReport是控制器代码中显示的唯一函数,而不是索引函数。

如果你真的希望它调用索引函数以便完成IF $ post检查,请尝试“schoolScoreCardReport / index&#39;参数。

答案 1 :(得分:0)

我认为URL字符串与codeigniter中对应的控制器类/方法之间存在一对一的关系。 URI中的段通常遵循此

example.com/class/function/id /

或者您看到此链接:https://www.codeigniter.com/userguide3/general/routing.html

答案 2 :(得分:0)

在form_open中你需要遵循这个

<?php echo form_open('ControllerName/FunctionName'); ?>

在你的情况下是

 <table>
           <?php echo form_open('schoolScoreCardReport/generatePOMEDetailReport'); ?>
            <tr><td>
              <label>Region:</label>
              <select name="region_name" style="width:150px">
              <option value = "1">a</option>
              </select>
            </td></tr>
            <tr><td>
            <input type="submit" id="btn_export"  value="Export" name="Export">
            </td></tr>
            <?php echo form_close(); ?>
     </table>