基本的なCRUDを作成しています。フォームの再作成を除いて、すべて正常に機能します。これが私がしていることの詳細です。
全社員一覧を表示しています。いくつかのリンクがあります新規追加。そして、各従業員で編集および削除します。[新規追加]または[編集]で、jquery Colorboxにデータを入力し、フォームをロードします。これが私のコントローラーメソッドにヒットするリンクです。
<a
href="<?php echo site_url('employees/form/'.$employee['id']);?>"
id="popUpEditFormTrigger"
return="<?php echo site_url('employees/entries'); ?>"
>Add New</a>
あなたがここで見ることができるように、私はフォームをロードするためにコントローラーメソッドを打っています。これは正常に機能します。カラーボックスform.jsにいくつかのコードがあります。
var dataString = $('#updateForm').serialize();
var url = $('#updateForm').attr('url');
$.ajax({
type: "POST",
url: url,
data: dataString,
success: function() {
$.fn.colorbox.close();
}
});
return false;
ajaxが成功すると、カラーボックスが閉じます。falseを返すと、リストビューがさらに進んでから先に進むのを防ぎます
return="<?php echo site_url('employees/entries'); ?>"
が実行され、テーブルのエントリが更新されます。
コントローラ
public function submit()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('name',' Employee Name'.'trim|required');
$this->form_validation->set_rules('salary',' Salary'.'trim|required');
$this->form_validation->set_rules('description',' Description'.'trim|required');
if($this->form_validation->run()){
$data['name'] = $post['name'];
$data['salary'] = $post['salary'];
$data['description'] = $post['description'];
$result = $this->employeesModel->insertEmployee($data);
}else{
$this->load->view('employee_form');
}
}
問題 :
問題は、ユーザー検証エラーを表示できるように、カラーボックスにフォームを再入力したいということです。ただし、挿入が実行されたか検証が失敗したかに関係なく、カラーボックスは常に閉じています。検証が失敗した場合、カラーボックスにフォームに再度入力し、ハイパーリンク属性がsite_url('employees /entries')に戻らないようにします。どうやってやるの?JQueryでこれを処理できると確信していますが、方法がわかりません。提案が必要です。