送信後に別のフォーム(他のコントローラーからの別のビュー)をロードするフォームがあります。ただし、この 2 番目のフォームでは、(前のフォームのように実装された) フォーム検証ルールが機能しない理由と、送信時に常にページが見つからない理由がわかりません。これに関しては、普通に違う機種の2つのページをurlで読み込んでみました。そして何が起こるかというと、最初のビューのモデルで私がURLを書いた場合:
http://localhost/code/index.php/fichas/index
テストのためにこのような2番目のモデル(Produtos)を試してみると、彼はこのページまたは他のページをfichasフォルダーに問題なくロードします。
http://localhost/code/index.php/produtos/index
このページまたはその他の製品フォルダーで、常にページが見つかりません。私は何か重要なものを見逃していますか?「ビュー」内の一部のフォルダーにある一部のビューをロードできるのに、他のビューをロードできないのはなぜですか?
ありがとうございました!
いくつかのコードで編集:
index.php の後、次のフォーム (create.php) から始めます。
<h2>Nova Ficha de Segurança</h2>
<?php echo validation_errors(); ?>
<?php echo form_open('fichas/create') ?>
<label for="cod_produto">Código do Produto:</label>
<input type="input" name="cod_produto" /><br />
<label for="nome_produto">Nome do Produto:</label>
<input type="input" name="nome_produto" /><br />
<label for="versao">Versão:</label>
<input type="input" name="versao" /><br />
<label for="data_ficha">Data da Ficha:</label>
<input type="input" name="data_ficha" /><br />
<input type="submit" name="submit" value="Criar Ficha" />
</form>
fichas.php (コントローラー) の関数 create:
public function create()
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('versao', 'versao', 'required');
if ($this->form_validation->run() === FALSE)
{
//$this->load->view('templates/header', $data);
//$this->load->view('templates/header');
$this->load->view('fichas/create');
//$this->load->view('templates/footer');
}
else
{
$data['teste1']=$this->fichas_model->set_fichas();
$data['teste'] = $this->fichas_model->get_distribuidor();
$this->load->view('produtos/ponto',$data);
}
}
前の関数から、produtos/ponto ファイルにリダイレクトされます。
<h2>Identificação do Produto/Identificação da Empresa</h2>
<?php echo validation_errors(); ?>
<?php echo form_open('produtos/ponto') ?>
<label for="nome_produto">Nome do Produto:</label>
<input type="input" name="nome_produto" /><br />
<label for="descricao_produto">Descrição do Produto:</label>
<input type="input" name="descricao_produto" /><br />
<label for="id_ficha">Cod do Produto:</label>
<input type="input" name="id_ficha" value="<?php echo $teste1['id_ficha'];?>" /><br />
<h4>Distribuidor</h4>
<label for="nome_empresa">Nome da Empresa:</label>
<input type="input" name="nome_empresa" value="<?php echo $teste['nome_empresa'];?>" /><br />
<label for="morada">Morada:</label>
<input type="input" name="morada" value="<?php echo $teste['morada'];?>" /><br />
<label for="cod_postal">Código Postal:</label>
<input type="input" name="cod_postal" value="<?php echo $teste['cod_postal'];?>" /><br />
<label for="localidade">Localidade:</label>
<input type="input" name="localidade" value="<?php echo $teste['localidade'];?>" /><br />
<label for="telefone">Telefone:</label>
<input type="input" name="telefone" value="<?php echo $teste['telefone'];?>" /><br />
<label for="fax">Fax:</label>
<input type="input" name="fax" value="<?php echo $teste['fax'];?>" /><br />
<label for="email">E-mail:</label>
<input type="input" name="email" value="<?php echo $teste['email'];?>" /><br />
<input type="submit" name="submit" value="Seguinte" />
</form>
最後に、produtos コントローラーの関数 ponto(): フォームの検証がまったく機能せず、送信後の読み込みビューで常にページが見つからないもの。そのため、製品モデルのビューを単独で読み込もうとしました。
public function ponto()
{
$this->load->helper('form');
$this->load->library('form_validation');
//$data['title'] = 'Create a news item';
$this->form_validation->set_rules('nome_produto', 'Nome do Produto', 'required');
$this->form_validation->set_rules('morada', 'Morada', 'required');
if ($this->form_validation->run() === FALSE)
{
//$this->load->view('templates/header', $data);
//$this->load->view('templates/header');
$this->load->view('produtos/ponto');
//$this->load->view('templates/footer');
}
else
{
$this->produtos_model->set_produtos();
$this->load->view('produtos/success');
}
}
解決済み:
クラス Produtos を作成したとき、クラス Fichas から基本をコピーしたので、クラス Produto には次のものがありました。
class Fichas extends CI_Controller { ...
とにかく助けてくれてありがとう、これは私に多くの時間を失いましたが、少なくとも今は解決されました.