質問: データを挿入するためのモーダルウィンドウが閉じられた後にフォーム内の選択要素をリロードする方法 App Engine PythonでWebアプリケーションを開発しています。 私は選択された要素を持つフォームを持っています。この要素は、システム上のすべての登録ユーザをリストします。 選択肢の最初のオプション、 'load user ...'が選択されている場合、モーダルウィンドウ 表示するユーザを登録するため、およびウィンドウが閉じられた後に、 コンボボックスは、更新されたリストを最新の状態で表示する必要があります ユーザーはデフォルトで選択されています。私はちょうどコンボボックスが更新され、全体ではないことを望みます フォームにすでに空ではないフィールドが多数存在する可能性があるためです。 jQueryでどうすればいいですか?
回答: ``` Select a user Load Users... ``` Jquery(テストされていない): ``` $('select#users').on('change',function(){ if($(this).val() == 'load'){ //show add user dialog } }); ``` ユーザーの追加要求に成功した後: ``` $('#add-new-user-form').submit(function(){ //get data from form and make a dataString to post to server var username = $('input[name="username"]').val(); //similar for other fields var dataString = 'username='+ username + '&email=' + email + '&pass=' + pass; $.ajax({ type: "POST", url: "url/to/your/backend/code", data: dataString, success: function(responseData) { //check how to return JSON or any other data using your backend var newUser = responseData; var newSelect = $(''); newSelect.append('' + newUser.name + ''); $('#users').replaceWith(newSelect); $("#users option[value='" + newUser.value + "']").attr('selected', 'selected'); } }); return false;//prevent default form submission } 1 追加された 24 6月 2012 〜で 12:45 著者 sabithpocker 源 おかげでsabithpocker!私はそれを試してみましょう... 追加された 24 6月 2012 〜で 12:56, 著者 Lucas, 源 ちょっと@sabithpockerは、ユーザーのリストを取得するためにいくつかのajaxを使用すべきではない? loadNewUser()メソッドでは、サーバーからユーザーのリストを取得する方法はありますか? 追加された 24 6月 2012 〜で 01:12, 著者 Lucas, 源 ありがとう@ sabithpocker、あなたがそれを実装しようとする編集された答えを投稿する=) 追加された 24 6月 2012 〜で 01:28, 著者 Lucas, 源 多くのユーザーがオプションを追加するときにループを使用する場合は、@Nord。そして、適切なonaを、ユーザーのリストの最初、最後の項目として選択します。 追加された 24 6月 2012 〜で 12:57, 著者 sabithpocker, 源 @Nordそれはサーバーに物事をどのように実装したかによって異なります。もちろん、ajaxを使用してデータを送信して受け取ることができます。 追加された 24 6月 2012 〜で 01:18, 著者 sabithpocker, 源 @Nordを使用すると、ajaxを使用してフォームを送信し、サーバーにコードを書き込んで、新しく追加されたユーザーの詳細に対応する必要があります。応答が到着すると、selectの変更をトリガーできます。私はこれで回答を編集しますが、サーバー側のコードは編集しません。 追加された 24 6月 2012 〜で 01:25, 著者 sabithpocker, 源 私の理解から、モーダルウィンドウはあなたの現在のDOMの一部として生成されます。登録ユーザのリストを表示するモーダルウィンドウは、呼び出しページのDOMにアクセスできます。閉じるボタンまたはリンクをクリックしたときに、呼び出しページの選択要素の更新をモーダルウィンドウのコードに含めることができます。 あなたのモーダルウィンドウのコードでは、私はあなたが送信ボタンに添付されたクリックイベントを持っていると仮定し、あなたはフォームの処理のためにあなたのサーバーにフォームを返すためにその関数の最後にフォームajaxを送信することができます。 例えば: $('#submit').click(function(){ //some activity $("#callingPageForm").ajaxSubmit({url: 'server.php', type: 'post'}) //close window }); ajaxリクエストでフォームを送信する方法について詳しくは、こちらをご覧ください。 1 追加された 24 6月 2012 〜で 12:40 著者 David Cheung 源 おかげさまでデイビス!私は登録されたユーザーのリストを表示するselect要素を持つフォームを持っており、selectの最初のオプションはモーダルウィンドウにリダイレクトする必要があります。そのモーダルウィンドウには、新しいユーザーを挿入するためのフォームが含まれます。 'submit'ボタンをクリックすると、モーダルが閉じて元のフォームのselect要素が新しいユーザーリストに更新されます。 追加された 24 6月 2012 〜で 01:05, 著者 Lucas, 源 @sabithpocker私はそこに更新を行うためにサーバーに提出する必要がありますが、select要素は更新されたリストを表示する必要があります... 追加された 24 6月 2012 〜で 01:21, 著者 Lucas, 源 @Nordモーダルの提出は、以前の形式で選択メニューを変更するか、更新するだけですか? 追加された 24 6月 2012 〜で 01:14, 著者 sabithpocker, 源 それ 数学 コンピュータユーザ システム管理者 Ubuntu UnixおよびLinux エレクトロニクス ゲーム ソフトウェア工学 Tex - LaTeX Apple 数学者 情報セキュリティー コードレビュー ロールプレイングゲーム Magento 統計 地理 数学 Drupal WordPress サイエンスフィクション SharePoint ゲーム開発 ユーザー体験 家の修繕 SalesForce アカデミア 写真 データベース管理 Android ウェブマスター お金 旅行 化学 Raspberry Pi Blender 3Dグラフィックス Webアプリケーション 職場 グラフィックデザイン Arduino ExpressionEngine コンピュータサイエンス ソフトウェアの推奨事項 自動車 料理 生物学 Emacsの 信号処理 データサイエンス 航空 定量的財務 音楽 自転車 ワールドビルディング ネットワーク工学 困惑 理論計算科学 哲学 園芸 Craft CMS ボードゲーム 歴史 アニメ CiviCRM 宇宙探査 音 フィットネス ソフトウェアテスト 計算科学 書き込み エンジニアリング 経済 コードゴルフ 天文学 ViとVim ビデオ Tridion プロジェクト管理 Joomla リバースエンジニアリング データを開く スポーツ ロボット工学 StackOverflow 源 licensed under cc by-sa 3.0 with attribution (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter51222095 = new Ya.Metrika({ id:51222095, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-119143777-13'); ```