
いつも大変にお世話になります。
今回ご相談させていただきたいのは、AJAXフォーム送信と、検証の仕方ついてです。
画面遷移なしでフォーム内容を送信し、データベースを更新したく思っています。
通常のフォーム検証と送信はできていますが、Ajaxになるとさっぱりわかりません。
欲しい挙動は、
1.Ajaxでフォーム内容を送信(その前に内容の検証
2.サーバサイドでフォーム内容を受け、DBを更新して、結果をjsonで返却
3.クライアント側で結果を受け、画面の一部を書き換え、
この「3」なのですが、書き換える内容がいくつかあるので、ASP.NET AJAXのような"UpdatePanel"は使えません。
あくまでjsonを読む必要がある感じです。
質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は可能なのでしょうか?
結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか?
コード例があれば最高ですが、どんな些細なご意見でも構いませんので、拝聴させていただけないでしょうか?
今すぐにコードを完成させなければいけない訳ではないので、若干の余裕がありますが、基本設計や画面設計に関わる部分なので、少し急いでおります。
なにとぞ皆様のお知恵をお貸しください。
No.2ベストアンサー
- 回答日時:
おっしゃていることはよくわかるのですが、質問内容があまりに一般論すぎて回答のしようがない、ということですね。
こういう設計は実証したのちに考えるべきもので、最初から「最高の方法は何か」という結論は出しにくいですね。
これまでずっと、サーバサイドプログラムしかやったことのないPGには最初から理解できないので、そこは腹をくくってください。
しかもASP.NETとVB.NETなどという組み合わせはそれこそ特殊なので、ちょっと難しいかもしれません。
以下のジャンルで順に実装をテストしてみることをお勧めします。
jQueryな実装として
・jQuery.validationの実装
・jQuery.ajaxでの実装
・jQuery.formプラグインでの実装
MVC的な方法論として、
・Client Validation
・Remote Validation
Ajax/Htmlヘルパーな実装として
・Html.BeginForm
・Ajax.BeginForm
・OnSuccessコールバック
あともし英語が読めれば、この記事も読んでみてください。
http://stackoverflow.com/questions/9489195/diffe …
自分が思うには、jQueryでいこうが、Ajaxヘルパーでいこうが、どちらでも問題はないと思います。
あとは。ValidationとかConfirmationとか、Validation失敗後の戻しとか、全体を含んだForm処理のなられを確立することじゃないでしょうか?
自分なら、全部Ajaxヘルパーを使いますが。jQueryのフォーム処理は検証が絡むと煩雑なように思います。少なくともASP.NET MVCレベルの検証を行うなら、という意味で。
(phpのようにオンスクリーン検証はjavascript環境のみで、サーバサイドはエラー画面だけ出してhistory.back()してもらうんならどうでもいいんですが)
shockatz様、本当にいつもありがとうございます。
アドバイスの内容を参考に、一通りやってみます!
身近にMVCやjQueryに詳しい人間が全くいないもので、非常に困っていました。
そうですか! @Ajaxヘルパーが使えるんですね。良かったです!
またすぐ不明点が出てくると思いますので、そのまた見捨てずにアドバイスしてやってください。
本会は(も)本当にありがとうございました。
No.1
- 回答日時:
> 質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は
> 可能なのでしょうか?
> 結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか?
えーと、Ajaxと言う言葉をどういう意味で使われているでしょうか。
通常上記のような処理を非同期で行うものをAjaxと呼ぶので、この処理にAjaxで対応できるか?と聞かれると、何がわかっていて何がわかっていないのか、さっぱり判断できない、という感じになります。
この手の処理は最近JQueryを利用することが多いと思います。
Ajaxという言葉から一旦離れて、JQueryとASP.NET MVCの連携、ということで情報を探すと解決策がみつかるかもしれません。
この回答への補足
onosさま(どっとねっとふぁん様?でしょうか
某会議室でもいつもお世話になっています。
自分は新参者のSEで、いつも顧客側デザイナの要求と社内外のPGとの間に立っているものです。
仕様を決めるにあたって、顧客の要求を詳細設計に落し込む時点で悩んでおります。
一般的に云う「Ajax」で、「画面遷移なしに非同期処理を行える」という点は確かに理解しているのですが、その実装が正確にわかりません。
・Form形式になっている入力フォームがあるとして、
・「送信」ボタン押下で、入力内容を検証→NGならばメッセージ出して再入力をうながし、
・送信直前に「本当に更新しますか?」確認メッセージを出して、
・送信結果、OKならば画面の上下に更新された関連情報を出して、なおかつ「更新されました」というメッセージも出す。
という内容です。
これを、jQueryのプラグインとASP.NET MVCのAjaxヘルパー機能(@Ajax.BeginFormや@Ajax.ActionLinkなど)を組合せて間違いなく実現する手段が知りたいのです。
自分の設計はいつもレビューで「実装への考察が甘い」とPGさんに大不評です。
お客様が希望される内容を設計しているだけなのですが。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- 所得税 電子税?のメールについて教えてください 8 2022/09/04 21:38
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- iPhone(アイフォーン) ケータイのガラス保護の保証について。 ケータイを落としてしまい、新しいガラス保護を買いました。 トリ 2 2023/06/12 23:38
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Webサービスについて(基になる...
-
Socket通信で、通信終了のイベ...
-
IIS+VBScriptでの処理待ちについて
-
Java-jspの画面入力値保持について
-
jspからServletを呼び、元のjsp...
-
コンボボックスの値が画面移動...
-
JSPからJSPへ情報を渡せる?
-
「<c:forEach タグが終了し...
-
webアプリを作ってます。エラー...
-
排他制御の方法
-
ServletからServletへの値渡し
-
別画面の表示方法について
-
JSPでのリストボックス表示
-
フォーム上で押されたボタンに...
-
テキストボックスから勝手に画...
-
HTML チェックボックスにチェッ...
-
jspからjspへ
-
J-PHONE用ページを作成している...
-
リッチクライアントのセッション
-
三菱GOTの画面切り替えについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
NetworkStreamからのRead()で、...
-
ASPとCGIの違い
-
IIS+VBScriptでの処理待ちについて
-
Redirect & transfer
-
Perlで処理の進行状況をユ...
-
ASP.NET MVCのAjaxフォーム検証
-
PerlからDB接続し、データ登録...
-
ハウスキープ処理について
-
Webサービスについて(基になる...
-
画面サイズ取得について
-
CGI(Perl)のメッセージボックス...
-
CPUを2つ搭載するといいのです...
-
Submit先について
-
JSPでのリアルタイムな時刻表示
-
アンケートの回答時間を計り,...
-
株価や為替レートのリアルタイ...
-
サーバーの仕組みについて
-
一般的なソケット通信プログラム
-
CGI サーバーを使い分けるには?
-
httpの後に連続してhttpsのアド...
おすすめ情報