0

送信後に別のフォーム(他のコントローラーからの別のビュー)をロードするフォームがあります。ただし、この 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 { ...

とにかく助けてくれてありがとう、これは私に多くの時間を失いましたが、少なくとも今は解決されました.

4

1 に答える 1

0

2 番目のテンプレートには、最初のテンプレートのようにフォームの開始/終了タグがまったくないようです。

于 2013-01-03T11:25:53.403 に答える