クラス インスタンスを再構築せずに jQuery .load 関数を使用して Codeigniter URI を呼び出そうとしています。
元の URI セグメントは次のようになります/culture/edit/190
。
この最初の呼び出しは、ID の情報がプリロードされた入力を使用してフォームを作成します。保護されたクラス変数 (によって呼び出される$this->editIds
) に含まれるさまざまなテーブルの最初の行 ID を保存して、後で送信されたフォームを元の ID と比較して、それらが変更されたかどうかを確認できるようにします。
フォームを送信すると、次のような URI が呼び出されます:/culture/do_edit
は、変更された可能性のあるフォームから投稿データを受け取り、insert ステートメントを準備します。
ID をチェックして、(ID が変更されている場合) ユーザーが ID を複製しようとしていないことを確認する必要があります。ID が一意の値に変更された場合 (変更された場合)、レコードの ID は問題なく変更されます。まったく変わっていない場合は、簡単に続行できます。
問題 (私が思うに) は、クラスが再構築され、以前に設定された変数の元のデータが失われることです。これdo_edit
は、変数が空 (コンストラクターの初期状態) と見なされるためです。
ajax メソッドの呼び出し方法を変更してみました。
$('#message').load('/culture/do_edit', data);
URI:/culture/do_edit
になり、クラスを再構築します。
また
$('#message').load('do_edit', data);
その結果、URIが生成され/culture/edit/do_edit
、実際にメソッド edit パラメータが渡されますdo_edit
。
元の ID を比較できるように、クラス インスタンスを保持したいと考えています。
投稿の非表示の入力に元の ID を渡すこともできますが、それを避けることができれば、余分な入力を追加したくありません。URI全体をクロールして再構築せずにメソッドを呼び出す方法はありますか?
それとも、別の方法で比較する必要がありますか?