2016-08-30 5 views
0

私はフォームを設定するのが初めてで、2つの別々の値を別のサーバーのJavaバックエンドに送信する必要があります。値の1つは、selectから得られ、もう1つはテキストinputフィールドから得られるべき事前定義された値です。AngularJSでオプションとテキスト入力フォームを提出する方法

フロントエンドで、ユーザーはドロップダウンからオプションを選択し、テキストボックスにテキストを入力し、送信ボタンを押してバックエンドに送信します。

私はこの設定に問題があり、いくつかのポインタを探していました。私は何をしようとしているかのアイデアを描くいくつかのコードを持っています。

<div class="col-xs-3"> 

<label>Search Criteria:</label> 
<select class="form-control" tabindex="20"> 
    <option value="0" disabled selected>Select your criteria</option> 
    <option value="1">Project Reference</option> 
    <option value="2">Service Owner</option> 
    <option value="3">Service Name</option> 
    <option value="4">Service Abbreviation</option> 
    <option value="5">Domain Abbreviation</option> 
    <option value="6">Domain Name</option> 
</select> 
</div> 

    <div class="col-xs-3"> 
    <label>Search Terms:</label> 
    <form name="options" class="form-inline"> 
    <div class="form-group"> 
    <input type="text" tabindex="21" class="form-control" placeholder="Search for..." ng-model="mytext" required> 
    <button type="submit" tabindex="22" style="color: #ffffff; 
    background-color: #007381;" class="btn btn-default" ng-disabled="options.$invalid"><b>Go </b><b></b><span class="glyphicon glyphicon-chevron-right"></span></button> 
    </div> 
</form> 
    </div> 
+0

のようなフォームの何かを宣言し、あなたのHTML内

.controller('YourController', function($http) { var controller = this; this.saveCriteria = function(criteria) { $http({method: 'POST', url: '/backend_url_handle_criteria', data: criteria}) .success(function(data) { //do something with data } }; this.saveTerm = function(term) { $http({method: 'POST', url: '/backend_url_handle_term', data: term}) .success(function(data) { //do something with data } }; this.send = function(formdata){ this.saveCriteria(formdata.criteria); this.saveTerm(formdata.term); }; }); 

:あなたは、このようなコントローラの内部でそれを行うことができます。必要なだけ多くのAjaxリクエストを作成できます。 angleの '$ http'サービスを使うだけです。 https://docs.angularjs.org/api/ng/service/$http – Vineet

答えて

1

複数の$ httpサービスコールを行う必要があります。それはあなたを助ける、あなたはこの

<form name="yourForm" ng-controller="YourController as yourCtrl" ng-submit="yourCtrl.send(formdata)"> 
+0

応答をありがとう。したがって、本質的に、以下のようなフォームタグでselectとinputを囲み、それらを一致させるために 'saveTerm'と' saveCriteria'の 'id'が必要になります。 URLはどこにデータを送信したいのでしょうか? – TheLimeTrees

+0

これは、これがJavaバックエンドからのJSON応答を返すことを追加することを忘れてしまいました。要求が提出されると、これも同様に行われます。 'GET'もおそらくそこに収まるだろうか? – TheLimeTrees

+0

1 - そうですね。用語と条件をプロパティとして持つjavascriptオブジェクトを持つことができます。 $ httpサービスのURLは、バックエンドサービスのURLです。 2 - したい場合は、GETを使用することができます。 $ httpサービス、promises(.success、.then ...)とフォームのng-modelディレクティブについてお読みになることをお勧めします – Khelmo

関連する問題