0

Javascript コードを実行できない CakePHP を使用して、モバイル ビューでアプリケーションを開発しています。

私のシナリオ:

ユーザー ログイン フォームで、ユーザーは送信ボタンをクリックしました。しかし、データが送信されてユーザーが次のページに移動する前に、「中断」ページを作成します (新しいビューをレンダリングします)。そこには、「Facebook」と「いいえ、ありがとう」ボタンが含まれています。「Facebook」をクリックすると、Facebook アカウントが接続されます。ただし、「いいえ、ありがとう」をクリックすると、ログインが続行されます。

私の質問は、どうすればその「いいえ、ありがとう」ボタンを作成できますか? ボタンを使用する<input type="submit">と、そのデータを含むフォームが前のページにあるため、このボタンはクリックされません。そして、POSTデータを保存する方法と、その「いいえ」ボタンがクリックされたとき、送信されたデータは?

4

3 に答える 3

2

データをセッションに保存するか、「いいえ」ボタンをフォームの送信ボタンにして、前のページのすべてのデータを非表示のフォーム フィールドに保存することができます。

個人的には、いくつかの理由からセッションを利用したいと思っていますが、この質問をしているので、セッション データの使用法に慣れていないのではないかと思います。

于 2012-10-29T05:23:12.803 に答える
1

より簡単な質問は次のとおりです。これらの 2 つのフォームを 1 つのページに作成しますが、ユーザー ログイン フォームと「中断」ページの間に縦または横のスペースがたくさんあるため、両方が同じ<form></form>タグ内にあるにもかかわらず、ログイン フォームを見ているユーザーは中断セクションを見ることができません。 . 次に、送信ボタンは、同じフォームの中断セクションへの単なるリンクです。このリンクは、JavaScript を必要とせずにログイン フォームを非表示にし、中断ページを表示するインライン リンク付きの単純な<a>タグです。このページのテスト セクション A に移動するリンクと同様

http://www.dynamicdrive.com/dynamicindex5/bookmarkscroll.htm

さらに、中断セクションでは、サーバーを要求するために POST を戻す実際の送信ボタンを使用できます。

[編集]

この回避策は、ユーザーが十分にスクロールしないという前提に基づいています。ほとんどのユーザーはそうしないため、モバイルで特に重要な 2 プロセスではなく 1 ステップ プロセスにします。誰かがそうすると、空のフォームがサーバーに送信され、検証を実行してユーザーにエラーを返すことができます。彼/彼女が完全なフォームに記入できる場所。したがって、これは、データをセッションに保存し、モバイル ネットワーク経由でユーザーがログインするたびに 2 つの POST 要求を行うよりも優れた回避策です。

于 2012-10-29T05:32:56.910 に答える
0

より良い解決策は、両方のフォームを 1 つのフォームに結合することです。そうすれば、2 つの http リクエストを行う必要はありません。おそらく、元のフォーム「FaceBook でログイン」のもう 1 つの送信ボタンの横に、もう 1 つのボタンを追加するだけで十分です。

于 2012-10-29T05:49:34.907 に答える