0
我有一種模式中的表單,用於對記錄進行更新。表單似乎沒有問題,瀏覽器中的URL指向正確的位置(domain.net/cities/update_city/1),但沒有顯示任何視圖,並且記錄從不更新。我搜索了互聯網,但大多數教程似乎略過更新或硬編碼更新的id。我只用了一週CI。CodeIgniter更新不能正常工作
型號代碼
// Edit City
function edit_city($city_id) {
$data = array('city_name' => $this->input->post('city_name'));
$this->db->where('city_id', $city_id);
$this->db->update('cities', $data);
}
查看代碼(表格是在模式和jQuery的被city_id加)
<div class="modal-body">
<?php $this->load->helper('form'); ?>
<?php echo form_open('/cities/update_city/'); ?>
<label class="control-label" for="name">City</label>
<input type="text" name="city_name" id="city_name" value=""/><br />
<input type="submit" name="submit" class="btn-small btn-primary" value="Edit City" />
<button class="btn-small" data-dismiss="modal">Cancel</button>
<?php echo form_close(); ?>
</div>
<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);
//set the forms action to include the city_id
$(".modal-body form").attr('action','/cities/update_city/'+city_id);
$('#editCityDialog').modal('show');
});
控制器代碼
// Update City
function update_city($city_id) {
$this->load->model('cities_model');
if ($this->input->post('submit')) {
$data = array('city_name' => $this->input->post('city_name'));
$this->cities_model->edit_city('cities', array('city_id' => $city_id),$data);
redirect('/cities');
}
}
感謝試圖幫助我。我更新了上面的代碼以匹配您的控制器代碼。我不明白你的模型代碼與$表$ $哪裏和$數據。自從表格以後,我不會將這些傳遞給模型,並且此函數的位置始終相同。當提交表單時,城市視圖現在顯示出來,所以我越來越接近,儘管記錄沒有更新。 –
我已編輯您的控制器代碼,請參閱我的文章底部。嘗試一下。 我想告訴你很多事情,但我不能。我的英語非常糟糕! –
工作,謝謝。我將不得不打印出來,花一些時間瀏覽代碼,以便我能夠準確理解發生了什麼。 –