我有一个两个控制器函数,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>
答案 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>