0

私は、工場を追加するための小さなクラッド システムに取り組んでいます。しかし、編集をクリックしてフォームに入力し(set_valueを設定していないため、まだ空です)、送信をクリックすると、すべてのフィールドの値が0になります。

IDに関係していると思いますが、何が問題なのかわかりません。

編集ページへのリンク (id をセグメント (3) として使用)

<a href="<?= base_url();?>members/updatebedrijven/<?= $item->idbedrijven;?>">Edit</a>

私のコントローラー機能:

function updatebedrijven()
{
    $this->load->view('members/header');
    $this->load->view('members/editform');
    $this->load->view('members/footer');
}

function update()
{
    $this->members_model->updatebedrijf($id);
    redirect('members/index');
}

私のモデル関数:

function updatebedrijf($id)
{
    $id = $this->uri->segment(3);
    $data = array(
       'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'),
       'Postcode' => $this->input->post('Postcode'),
       'Plaats' => $this->input->post('Plaats'),
       'Telefoonnummer' => $this->input->post('Telefoonnummer'),
       'Email' => $this->input->post('Email'),
       'Website' => $this->input->post('Website'),
       'Profiel' => $this->input->post('Profiel'),
       'Adres' => $this->input->post('Adres'),
       'logo' => $this->input->post('logo')
    );

    $this->db->where('idbedrijven', $id);
    $this->db->update('bedrijven', $data); 
}

私のフォーム:

<div id="cpanel">
<h2>Bedrijfsgegevens aanpassen</h2>
<?= br(1);?>
<?= validation_errors(); ?>
<?= form_open('members/update');?>
<table>
<b>NAW Gegevens</b>
    <tr>
    <td><?= form_label('Bedrijfsnaam:');?></td>
    <td><?= form_input('Bedrijfsnaam');?></td>
    </tr>

    <tr>
    <td><?= form_label('Adres:');?></td>
    <td><?= form_input('Adres');?></td>
    </tr>

    <tr>
    <td><?= form_label('Postcode:');?></td>
    <td><?= form_input('Postcode');?></td>
    </tr>

    <tr>
    <td><?= form_label('Plaats:');?></td>
    <td><?= form_input('Plaats');?></td>
    </tr>

    <tr>
    <td><?= form_label('Telefoonnummer:');?></td>
    <td><?= form_input('Telefoonnummer');?></td>
    </tr>

    <tr>
    <td><?= form_label('Website:');?></td>
    <td><?= form_input('Website');?></td>
    </tr>

    <tr>
    <td><?= form_label('Email:');?></td>
    <td><?= form_input('Email');?></td>
    </tr>

    <tr>
    <td><?= form_label('Profiel:');?></td>
    <td><?= form_textarea('Profiel');?></td>
    </tr>

    <tr>
    <td><?= form_submit('submit', 'Opslaan');?> <?= form_reset('reset', 'Reset');?></td>
    </tr>


</table>
<?= form_close()?>
<br/>
<a href="<?= base_url();?>members/index"><< Terug</a>

</div>
4

1 に答える 1

1

まず、コードの一部を移動する必要があります。モデルの uri や投稿データにアクセスするべきではないので、それをコントローラーに移動させましょう。

コントローラー機能:

function updatebedrijven()
{
    // Access the uri in the update form and pass the value to the view
    $data['id'] = $this->uri->segment(3);

    $this->load->view('members/header');
    $this->load->view('members/editform', $data);
    $this->load->view('members/footer');
}

function update()
{

    // Access the post data in the function the form is posted to (not the model)
    $data = array(
      'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'),
      'Postcode' => $this->input->post('Postcode'),
      'Plaats' => $this->input->post('Plaats'),
      'Telefoonnummer' => $this->input->post('Telefoonnummer'),
      'Email' => $this->input->post('Email'),
      'Website' => $this->input->post('Website'),
      'Profiel' => $this->input->post('Profiel'),
      'Adres' => $this->input->post('Adres'),
      'logo' => $this->input->post('logo')
    );
    $this->members_model->updatebedrijf($id);
    redirect('members/index');
}

モデル機能:

function updatebedrijf($id, $data)
{
    $this->db->where('idbedrijven', $id);
    $this->db->update('bedrijven', $data); 
}

次に、members/update実際に に投稿する必要があるときに、フォームを に投稿しますmembers/update/$id。ビューのコードを少し変更して、コントローラーから渡された id 変数を含めます。

<?= form_open('members/update/'.$id);?>

于 2013-04-22T09:17:37.820 に答える