【发布时间】:2015-07-30 18:26:29
【问题描述】:
如果包含我的表单的<div> 标记具有“隐藏”类并且只有在单击该页面上的“添加”按钮时才能看到,我如何在提交无效表单后保留在该页面上。
这是您单击该页面上的添加按钮时我的 URI/URL 的外观。
http://localhost/CITESTING/index.php/gatepass#new-gatepass-form
#new-gatepass-form 是您将看到表单的 div。
当我尝试刷新该 URL 时,页面会返回到默认 div 并隐藏表单 div。
if ($this->form_validation->run() == true && $this->gatepass_model->addgatepass($adddata))
{
//goes to the default view where form div hides
//TRUE
$this->load->view("gatepass");
}
else {
//what should I put here?
}
gatepass.php [控制器]
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Gatepass extends CI_Controller
{
public function __construct() {
parent:: __construct();
$this->load->helper("url");
$this->load->helper('form');
$this->load->model("gatepass_model");
$this->load->library("form_validation");
}
//create a new user
public function index()
{
//$this->load->view('header');
//$this->load->view('gatepass');
$this->load->model("gatepass_model");
$data['records']= $this->gatepass_model->gatepassList();
$this->load->view('header');
$this->load->view("gatepass", $data);
}
function add_form()
{ //CREATE
$this->form_validation->set_rules('gatepassNo', 'Gate Pass No', 'required|strip_tags|trim|xss_clean');
$this->form_validation->set_rules('serviceCardNo', 'Service Card No', 'required|strip_tags|trim|xss_clean');
$this->form_validation->set_rules('spareParts', 'Spare Parts', 'required|strip_tags|trim|xss_clean');
$this->form_validation->set_rules('serviceNo', 'Service NO', 'required|strip_tags|trim|xss_clean');
$this->form_validation->set_rules('accessories', 'Accessories', 'required|strip_tags|trim|xss_clean');
$this->form_validation->set_rules('dateClaimed', 'Date Claimed', 'callback_dateClaimed_check');
if ($this->form_validation->run() == true)
{
$adddata = array(
'gatepass_no' => $this->input->post('gatepassNo'),
'servicecard_no' => $this->input->post('serviceCardNo'),
'item_no' => $this->input->post('spareParts'),
'service_no' => $this->input->post('serviceNo'),
'accessories' => $this->input->post('accessories'),
'date_claimed' => $this->input->post('dateClaimed'),
);
}
if ($this->form_validation->run() == true && $this->gatepass_model->addgatepass($adddata))
{
//check to see if we are creating the user
//redirect them to checkout page
redirect("gatepass");
}
else {
}
}
gatepass.php [查看]
<div id='gatepass-records' class="hide">
//some records table and default window
</div>
<div id='new-gatepass-form' class="hide">
<?php echo form_open('gatepass/add_form'); ?>
<div class="form-horizontal">
<div class="form-group">
<label class="col-sm-4 control-label">Gate Pass No:</label>
<div class="col-sm-8">
<?php echo form_error('gatepassNo'); ?>
<input type="text" name="gatepassNo" class="form-control" value="<?php echo set_value('gatepassNo');?>" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">Service Card No:</label>
<div class="col-sm-8">
<?php echo form_error('serviceCardNo'); ?>
<input type="text" name="serviceCardNo" class="form-control" value="<?php echo set_value('serviceCardNo');?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">Spare Parts:</label>
<div class="col-sm-8">
<input type="text" name="spareParts" class="form-control" value="<?php echo set_value('spareParts');?>">
</div>
</div>
<div class="form-group">
<div class="col-sm-6"></div>
<div class="col-sm-4">
<input type="submit" name="submit" class="btn btn-success btn-lg" value="Submit" />
</div>
<div class="col-sm-6"></div>
</div>
</div>
<?php echo form_close(); ?>
</div>
<div id='gatepass-modify' class="hide">
//still working on this
</div>
我在一个外部 js 文件上有这个脚本。
/********************* G A T E P A S S W I N D O W **********************/
if(elem_id == 'gatepass-window')
{
if(elem_id == '#view-gatepass-btn') {
$('#gatepass-records').removeClass('hide');
}
if(elem_id == '#modify-gatepass-btn') {
$('#gatepass-modify').removeClass('hide');
}
if(elem_id == '#new-gatepass-btn') {
$('#gatepass-form').removeClass('hide');
}records
if(elem_id == '#delete-gatepass') {
}
}
else
{
$('#gatepass-records').removeClass('hide');
$('#modify-gatepass-btn').on('click', function(e) {
$('#gatepass-records').removeClass('hide');
$('#gatepass-form').addClass('hide');
});
$('#new-gatepass-btn').on('click', function(e) {
$('#gatepass-form').removeClass('hide');
$('#gatepass-records').addClass('hide');
});
}
/************ E N D O F G A T E P A S S W I N D O W ***************/
【问题讨论】:
-
$this->load->view("gatepass",$adddata);用户在验证错误后加载页面的相同视图以及在页面上使用 form_error('field_name') 显示错误
-
如何在 codeigniter 中访问该 URL?假设我可以在 jquery 中找到一种方法,可以在重新加载时删除 div 的类。但是,如果我唯一知道的是 $this->load->view("gatepass") 我无法访问整个 URL,我该如何访问该 URL
-
不明白你想要什么?
-
使用 redirect() 函数在任何 url 上发送。如果您不想刷新该页面,请不要在 else 部分中写任何内容。
-
不要在 else 部分写任何东西,然后使用 form_error('fieldname') 来显示错误。使用它ellislab.com/codeigniter/user-guide/libraries/…
标签: javascript php jquery html codeigniter