0

データベースに都市のリストがあります。都市の名前を変更して送信できるフォームを含むモーダルを表示する編集ボタンがあります。city_id を編集ボタンからモーダルを介してコントローラーに渡すのに苦労しています。city_id をフォーム オープン コードに入れようとする行で、「city_id の undefined variable というメッセージが表示されます。

モーダルをミックスに追加すると、これが混乱します。

コードを表示

<a href="#" class="btn edit-modal" data-id="<?php echo $c['city_id']; ?>"  data-name="<?php echo  $c['city_name']; ?>">Edit</a>

<!-- Modal for Edit -->
<div class="modal hide" id="editCityDialog">
<div class="modal-header">
    <button class="close" data-dismiss="modal">x</button>
    <h3>Edit City</h3>
</div>
<div class="modal-body">
    <?php $this->load->helper('form'); ?>
        <?php echo form_open('/cities/edit_city/'. $city_id); ?>
        <label class="control-label" for="name">City</label>
        <input type="text" name="city_name" id="city_name" value=""/><br />
        <input type="submit" class="btn-small btn-primary" value="Edit City" />
        <button class="btn-small" data-dismiss="modal">Cancel</button>
    <?php echo form_close(); ?>
</div>

<!-- jQuery for Modal -->
<script>
  // scripts for modal windows
$(document).on("click", ".edit-modal", function () {
    var city_name = $(this).data('name');
    var city_id = $(this).data('id');
    $(".modal-body #city_name").val( city_name );
    $('#editCityDialog').modal('show');
});
</script>

コントローラーコード

// Edit City
public function edit_city() {
    $id = $this->uri->segment(3);

    if ($this->input->city('submit')) {
        $city_name = $this->input->xss_clean($this->input->city('city_name'));
        $this->cities_model->edit_city($city_id, $city_name);
    }
}

型式コード

// Edit City
public function edit_city($city_id, $city_name) {
    $data = array(
        'city_name' => $city_name
    );
    $this->db->where('city_id', $city_id);
    $this->db->update('cities', $data);
}
4

2 に答える 2

1

city_idすでに持っているを使用して、それでアクションを設定できます。

$(document).on("click", ".edit-modal", function () {
    var city_name = $(this).data('name');
    var city_id = $(this).data('id');
    $(".modal-body #city_name").val( city_name );
    //set the forms action to include the city_id
    $(".modal-body form").attr('action','/cities/edit_city/'+city_id);
    $('#editCityDialog').modal('show');
});
于 2012-11-13T18:04:56.367 に答える
0

編集ボタンでエコー<?php echo $c['city_id']; ?>が機能する場合は、次のように form_open でもそれを行う必要があります

<?php echo form_open('/cities/edit_city/'. $c['city_id']); ?>

edit_city()がある場合にのみ関数が呼び出される場合は、segment(3)これを行う方が簡単であることもお勧めします。

// Edit City
public function edit_city($id) {

    if ($this->input->city('submit')) {
        $city_name = $this->input->xss_clean($this->input->city('city_name'));
        $this->cities_model->edit_city($city_id, $city_name);
    }
}
于 2012-11-13T17:26:34.027 に答える