为什么它使用codeigniter将我引导到错误的url



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

相关内容

  • 没有找到相关文章

最新更新