0

これは説明するのが非常に難しい問題です。

全体像: ajax 化されたダイアログがページに送信され、新しいコンテンツ セット レコードが作成されます。コンテンツ セット レコードの作成後、この新しく作成されたコンテンツ セットは選択されたコンテンツ セットである必要があり、作成または変更されたすべてのコンテンツには、新しく作成されたコンテンツ セット ID が添付されている必要があります。コンテンツ セット ID は、ページの読み込み中に MySQL の自動インクリメント フィールドを使用して作成されます。

問題の詳細: ajax を使用してコンテンツ セット作成ダイアログを表示するページがあります。ダイアログは複数の場所から呼び出される可能性があるため、空白の URL に送信されます。ダイアログが呼び出された URL に送信されるようにします。ダイアログが呼び出し元のページに送信された後、ページ上の PHP によって、MySQL データベースにコンテンツ セット レコードが作成されます。新しく作成されたレコードの挿入 ID を GET 変数を使用してページからページに渡す必要があります (既にこの方法でページネーション変数を渡しているため、最も簡単な方法です) が、挿入 ID を取得する前にページをロードする必要があるため、 GET 変数が存在する必要があるすべての場所を設定する方法 (ページ リンク、php $_GET 変数、URL)。

考慮すべき事項:

  • 新しく作成された挿入 ID をセッション変数を介して渡しますが、誰かが [戻る] ボタンを押したときに問題が発生し、セッション変数が以前の値に戻らない場合を除きます。
  • Javascript と PHP を使用して、この挿入 ID 変数が使用されるさまざまな場所を変更しますが、空の URL に送信される別の ajaxed ダイアログをプルする場合を除き、空の URL にはもちろん新しい GET 変数がありません。また、これは非常にずさんなようで、維持するのは悪夢です。
  • レコードの作成後、新しい GET 変数を追加した後、同じページにリダイレクトしますが、POST 変数を渡すことができないため、エラー メッセージと成功メッセージがお尻の完全な苦痛になります。GET vars は $_SERVER['QUERY_STRING'] と空のリンクを使用してページ間で渡されるため、表示するエラー/成功メッセージをページに伝えるために GET vars を使用したくありません。
  • 新しく作成したコンテンツ セットを作成後に自動ロードすることができませんでした。これにより、ユーザーは、新しく作成されたコンテンツ セット自体を読み込むという余分な手順を実行することになりますが、これは避けたいと思います。

これに対するエレガントな解決策はありますか?この問題は、ウェブサイトの設定方法が原因で非常にユニークな場合がありますが、誰かが同様の問題に対処している必要があります. この 1 つの小さな問題を解決するために、サイトのデザインをあまり変更する必要がないことを願っています。どんなアイデアでも大歓迎です。

4

3 に答える 3

0

セッションに消極的であることは理解していますが、これはセッションを使用する良い機会かもしれません。

もう 1 つのアイデアは、ページで非表示の入力を使用することです。

最初のダイアログの後、PHP に対して (ajax を介して) 要求が行われ、レコードが db に挿入され、挿入された ID が取得されます。正しい?

ajax コールバックでは、次のことができます。

a) id を保持するためにタイプ hidden の入力を作成し、これをフォーム内に作成します。すべての投稿のID

b) トリッキーな JavaScript を実行して、すべてのリンク/ボタンの URL 文字列に「&id=id」を挿入します。jquery は確かにここで役立ちます。thisa は難しいです。アンカー リンク、ボタン アクション、何でもかまいません。

あなたがそれをGETに入れることに固執していることはよくわかりませんが、いくつかの追加作業でそれを実現できます。リロードせずに ajax の後に URL に配置することはできませんが、後でどこにでも配置できるようにすることができます。

于 2010-11-19T01:14:28.543 に答える
0

ここでは、セッションベースのソリューションに同意する必要があります。ユーザーが反撃した場合に古い値に戻すメカニズムを作成できる必要があることに注意してください。このためには、id の現在の値を持つセッション変数、id の以前の値を持つセッション変数、最後に表示したページの URL を保持するセッション変数が 3 つ必要です。このようにして、現在の URL がセッション変数に保存されている最後の URL と等しいかどうかを確認し、そうであれば古い ID に戻すことで、ユーザーが戻るボタンを押したかどうかを確認できるはずです。

これは一般的な概念にすぎないことに注意してください。このようなシステムが適切に機能する前に、いくつかの技術的な問題を解決する必要があると確信しています。

于 2010-11-19T03:49:07.660 に答える
0

URL ハッシュ文字列 (名前は何でも) を変更する必要があることを確認してください。URLを変更できないためです。基本的に、Facebook のようなサイトが URL をどのように持っているかを見てください。

于 2010-11-19T01:10:00.783 に答える