2015-11-10 87 views
0

我有一個動態使用NG-重複產生一些texboxes:Ionic Framework - 如何提交包含動態內容的表單?

<ion-content> 

    <div class="matchList"> 

     <div class="matchListItem" ng-repeat="match in matchData"> 

      <div class="home-team-name"> 
       {{match.Team1.TeamName}} 
      </div> 

      <div class="tip-input"> 
       <input type="text" style="border:1px solid #CCC; width:100%; height:23px; padding-left:4px;" /> 
      </div> 

      <div class="tip-center"> 
       <center>:</center> 
      </div> 

      <div class="tip-input"> 
       <input type="text" style="border:1px solid #CCC; width:100%; height:23px; padding-left:4px;" /> 
      </div> 

      <div class="guest-team-name"> 
       {{match.Team2.TeamName}} 
      </div> 

      <div style="clear:both"></div> 
     </div> 

    </div> 

    <div class="save-button"> 
     <button class="button button-block button-positive" ng-click="save()"> 
      Save 
     </button> 
    </div> 
</ion-content> 

這是一個足球聯賽的尖端遊戲。所以每個比賽日有兩個文本框。我想將文本框的值發送到一個php文件。我知道我可以這樣做:

$scope.save = function() { 

    $http.get('http://localhost/saveTips.php?data=' + data).then(function (response) { 
     $scope.doesItWork = response.data; 
    }) 

} 

但我怎樣才能保存每個文本框的值在數據變量發送到php文件?

回答

1

您需要將模型賦予字段,以允許訪問控制器上的數據。 你可以做作爲存儲陣列上的數據一樣簡單的東西(一個新的,甚至你做了NG-重複相同的陣列,如在這個簡單的例子。)

<input type="text" ng-repeat="input in inputs" ng-model="input.model" /> 

Live JSFiddle

如果你喜歡看到一個更復雜的例子,讓我知道,但我認爲你可以得到理想。

+0

當我想提交第一個文本框的值時,我該做什麼?我試過它: var firstValue = $ scope.matchData [0] .model; (函數(響應)){console.log(response。)}函數(響應){console.log(response.txt)數據); }) } 但它說: 無法讀取屬性「0」的未定義 – Nono

+0

我已經更新了一個小的例子,[看看它(http://jsfiddle.net/73Loumze/1 /)。讓我知道這是不是你正在尋找。 @不,不 –

0

您將在每個輸入上使用ng-model,然後將該陣列發佈到服務器。在服務器上,您將不得不接受一組match對象。

假設你match對象是

match:{ 
    Team1:{ 
    TeamName:'', 
    InputValue:'' 
    }, 
    Team2:{ 
    TeamName:'', 
    InputValue:'' 
    } 
} 

那麼你的投入將有ng-model="match.Team1.InputValue"(或的Team2)

此外,你應該使用$http.post('http://localhost/saveTips.php', data)和改變你的PHP文件接受POST請求,因爲它看起來就像你正在保存數據一樣。