-1

ID、ユーザー名などとともに学生のリストを表示する HTML フォームがあります。そのフォームのリンクをクリックして、個々の学生を削除する機能を追加する必要があります。MVC codeIgniter フレームワークを使用しているときに、PHP でこれを行うにはどうすればよいですか?

以下のフォーム ビューにコードを投稿しましたが、基本的には、PHP の foreach ループを使用して、データベース内の生徒のリストをループ処理しています。このループでは、生徒ごとにリンクを作成しています。 「削除」と表示され、クリックすると、生徒がクラスから削除されます。

各リンクには、学生の実際の削除を行う学生モデル クラスに含まれている PHP 関数を呼び出す onclick メソッドがあります。このようにしているときに私が経験している問題は、何らかの理由で、ページが最初に読み込まれるたびに、表示されているすべての学生が自動的に削除されることです。だから私の質問は、クリックされた生徒だけが削除され、現在のようにすべての生徒が削除されないようにする方法です。

私の MVC クラスの参考として、このビュー フォーム コードである user_index.php、モデル クラスである user_data_model.php、そして私の学生コントローラー クラスである user_controller.php があります。

ここに私のビューコード(user_index.php)があります:

<?php foreach ($userList as $user_item): ?>
...

<td>
<a href="" onclick="<?php $user_data_model->remove($user_item['user_name']); ?>">Remove</a>
</td>
<?php endforeach ?>

そして私のモデル関数 (user_data_model.php):

// remove a student
public function remove($username)
{
    $this->db->where('student_user_name', $username);
    $this->db->update('Student_table', array('student_password' => md5('inactive')));
}

上記のモデル コードからわかるように、学生のパスワードを文字列 "inactive" の暗号化されたバージョンに変更するだけなので、実際にテスト目的で学生を削除するわけではありません。

これに関するあらゆる種類のヘルプは非常に役立ちます。ありがとう!

4

1 に答える 1

1

これを正しく理解している場合は、リンクがクリックされたときに学生の記録を HTML から削除する必要があります。その場合、それを解決するためのアプローチはほとんどありません。

1.ページにリダイレクトせずに、AJAXを使用する必要がある同じページに留まり、IDなどのそのユーザーのデータを取得し、データベースからレコードを削除するPHPスクリプトでAJAXを実行します。次のようになります。

$(document).on('click', '.your_link', function() {
   var studentRow = $(this).find('student_row_element');
   var studentIDFromElement = $(this).attr('studentid');
   $.ajax({
      url: '/PATH_TO_YOUR_PHP_SCRIPT',
      data: { studentID : studentIDFromElement, ... },
      success: function(result) {
        if (result) { studentRow.fadeOut(500); }
      }
   });
});

2.もう 1 つの方法は、リンクがクリックされたときにフォームを php スクリプトに送信して、学生を DB から削除し、ページにリダイレクトすることです。

于 2013-03-15T15:32:41.617 に答える