データベーステーブルのフィールドを編集できるアプリケーションがあります。更新したいフィールドに移動し、テキストを変更する代わりにフィールドを空白にする場合を除いて、すべてが正常でデータが更新されます。このようにして、コントローラーのメソッドがテーブルのその行のIDを失うため、phpエラーが発生します。
誰かが私を助けてくれたら嬉しいです、よろしくお願いします。
メソッドgetを使用するビューファイルの一部は、テーブル行のID(edit_fuga.php)を渡します。
<div id='tab2'>
<?php
$query = $this->db->query("SELECT * FROM fugas WHERE tipo_fuga='2';");
foreach ($query->result_array() as $row)
{
echo "<input type='hidden' name='id_fuga' value='". $row['id_fuga']."'>";
echo $row['desc_fuga']." <a class='button' href='http://localhost/code/index.php/fugas/editar_fuga?var1=".$row['id_fuga']."'>Editar</a>";
echo "<br/>";
}
?>
</div>
リダイレクト先のビュー(editar_fuga.php):
<?php echo validation_errors(); ?>
<?php echo form_open('fugas/editar_fuga') ?>
<?php
$query = $this->db->query("SELECT desc_fuga_table FROM tipos_fuga where tipo_fuga_table='".$fuga_selected['tipo_fuga']."';");
foreach ($query->result() as $row)
{
echo $row->desc_fuga_table;
}
$tipo_fuga_selected=$row->desc_fuga_table;
?>
<label for="tipo_fuga"><?php echo $tipo_fuga_selected; ?></label><br/>
<p/>
<label for="desc_fuga">Desc da fuga:</label><p/>
<textarea rows="4" cols="50" name="desc_fuga"><?php echo $fuga_selected['desc_fuga']; ?></textarea><p/>
<input type="hidden" name="id_fuga" value="<?php echo $fuga_selected['id_fuga']; ?>">
<input type="submit" name="submit" value="Alterar Fuga" /><p/>
<INPUT Type="button" VALUE="Voltar" onClick="history.go(-1);return true;">
</form>
ビューeditar_fuga.phpのコントローラーのメソッド
public function editar_fuga(){
$fuga_id = $this->input->get('var1');
var_dump($fuga_id);
$this->load->helper('form');
$this->load->library('form_validation');
//$this->load->view('templates/header');
$this->form_validation->set_rules('desc_fuga', 'Descrição da fuga acidental', 'required');
if ($this->form_validation->run() === FALSE)
{
$data['fuga_selected'] = $this->fugas_model->get_fuga($fuga_id);
$this->load->view('fugas/editar_fuga', $data);
}
else
{
$this->fugas_model->update_fuga();
echo "Fuga alterada com sucesso.<br/><br/>";
$this->load->view('fichas/index');
}
}
フーガモデル:
public function update_fuga(){
$data = array(
'desc_fuga' => $this->input->post('desc_fuga')
);
$id=$this->input->post('id_fuga');
$this->db->where('id_fuga', $id);
$this->db->update('fugas', $data);
}
public function get_fuga($fuga_id){
var_dump($fuga_id);
$query = $this->db->query("SELECT * FROM fugas where id_fuga='".$fuga_id."';");
foreach ($query->result_array() as $row)
{
$data_fuga = array(
'id_fuga' => $row['id_fuga'],
'tipo_fuga' => $row['tipo_fuga'],
'desc_fuga' => $row['desc_fuga']
);
}
return $data_fuga;
}