我有一个两个控制器函数,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>
除非有一些路由会影响请求,否则我认为发送到form_open((的参数应该如下。。。
<?php echo form_open('schoolScoreCardReport/generatePOMEDetailReport'); ?>
由于generateOMEDetailReport是上面控制器代码中显示的除索引函数之外的唯一函数。
如果你真的想让它调用index函数来完成If$post检查,请尝试参数的"schoolScoreCardReport/index"。
我认为在codeigniter中,URL字符串与其对应的控制器类/方法之间存在一对一的关系。URI中的段通常跟在这个后面
example.com/class/function/id/
或者您看到此链接:https://www.codeigniter.com/userguide3/general/routing.html
在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>