実際の例で説明します。
編集、削除、非表示などをしたいレコードがたくさんあるとあなたは言いました。私はこれを何度も行いました:編集のために開く、削除、非表示などのアクションを含む「アクション」列を持つテーブルにレコードをリストします/unhide、上/下に移動、最初/最後に移動...
もちろん、これはすべて、PHP とフォームの送信またはページのリダイレクトの方法でのみ行うことができますが、データを管理するのに便利なように、これほどユーザーフレンドリーにしないのはなぜでしょうか? そこで、私は AJAX と JSON を使用し、jQuery フレームワークは、私がさらに詳しく説明することを達成するための私の親友でした。
それでは、問題を回避しましょう。
- データベースにデータが保存されています(MySQLで動作します)
- PHPで書かれたサーバー側があります(またはそれを書かなければなりません)
- jQuery(AJAXおよびJSON)を使用してデータを管理できるフロントエンドがあります
- ユーザーが実行するすべてのアクションは、AJAX リクエスト (jQuery) によってサーバー (PHP) に送信され、サーバーはアクションを管理し、フロントエンドに応答します。
- また、データ自体はjQueryによって取得および表示されます
データの取得と表示
これは、PHP が MySQL データベースにクエリを実行することによって行われます。具体的な一連のレコードのみをクエリするために、offset や limit などのパラメーターを受け取るメソッド/アクションを準備します。
フロントエンド内で AJAX リクエストが PHP に送信され、レコードが取得されます。PHP がテーブルの最後に追加する完全な HTML マークアップを返すか、JSON 形式のデータから jQuery 内で HTML マークアップを設定できます。2番目のアプローチの方が良いと思います。
チェックボックスを含む列を作成できます (はい、すべてのテーブルをフォームにすることができますが、これは必須ではありません)。この値にはレコードの ID が含まれます。次に、提示したいデータを含む他の行と、特別なアクションへのリンクを含む「アクション」列を書き留めます。
アクションとデータ ページングの管理
したがって、デフォルトとして15行、最初の列にチェックボックスとレコードID、データ列とアクション列があるテーブルがあります。
ユーザーが 3 番目の行の非表示アクションをクリックします。jQuery によってクリック イベントをキャッチし、そのリンクから親の tr 要素を取得します。次に、その最初の子 (チェックボックスの値 - レコードの ID) を見つける td を見つけます。これで、ID を持つレコードを非表示にしたいことがわかりました。たとえば、9 とします。非表示アクションを管理するサーバーに対して AJAX 要求を実行する必要があり (おそらく、DB 内のそのレコードにフラグを設定するだけです)、成功すると応答が返されます。フロントエンドに送り返されます-これは、tr要素全体(およびその中のすべてのデータ)も非表示にするか、非表示/表示フラグを示すアイコンを変更するだけの瞬間です。
削除するときは tr 要素も削除し、移動するときは tr 要素も移動します。
リダイレクトなし、リロードなし、送信なし。
これは単なるコンテキストであり、コードであり、すべての作業はあなたにあります。JSON と AJAX を使用して、PHP + jQuery を使用してこれを実現する方法を描きたかっただけです。
また、このアプローチでは JavaScript をオンにする必要がありますが、JavaScript がサポートされていない場合でも、送信、リダイレクト、リロードできるようにアプリケーションを作成できます...