2016-11-12 48 views
0

我有一個搜索字段並提交按鈕。我想要做的是當按鈕被點擊時,搜索字段的名稱的值被髮送到控制器。問題是這個名字是動態的,就像這個name =「select - {{variable}}」。 沒有{{variable}},我可以很容易地得到它,但因爲它變化,我不知道如何得到它。請給出線索。代碼:獲取Symfony中提交輸入名稱的動態值

  <form class="form-inline" method="post"> 
      <div class="form-group"> 
       <input type="text" class="form-control" name="select-{{ variable }}" placeholder="Search" /> 
      </div> 
      <div class="form-group"> 
       <button class="btn btn-success" id="btn" type="submit">Submit</button> 
      </div> 
     </form> 

回答

0

我從來沒有通過這個網站得到滿足。每次我問 問題,人不理我

它的不到一小時前你問的問題,有一定的耐心..

這是一個有點不清楚你想要什麼來實現的,也許有更簡單的方法來完成工作。但我已經嘗試解決你的問題:

替代1

或許你可以提交表單前剛剛設定輸入的名字嗎?使用AngularJS,您可以使用ng-click =「」指定的函數執行此操作。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<html> 
 

 
    <body ng-app="app" ng-controller="ctrl"> 
 
    
 
     <form class="form-inline" method="post"> 
 
      <div class="form-group"> 
 
       <input type="text" name="form_name" placegolder="form-name" ng-model="variable"/> 
 
       <input type="text" name="{{name_variable}}" placeholder="My Name is: {{name_variable}}" /> 
 
      </div> 
 
      <div class="form-group"> 
 
       <button class="btn btn-success" ng-click="submit()">Submit</button> 
 
      </div> 
 
    
 
      <script> 
 
       var app = angular.module('app', []); 
 
    
 
       app.controller('ctrl', function($scope) { 
 
        $scope.variable = ''; 
 
    
 
        // Submit function 
 
        $scope.submit = function() { 
 
         $scope.name_variable = 'select-' + $scope.variable; 
 
         alert('Input Name: ' + $scope.name_variable); 
 
        } 
 
       }); 
 
      </script> 
 
    
 
    </body> 
 
    </html>

替代2

如果你需要有儘快動態更新表單名稱爲「可變」的變化,那麼你可以使用$表的方法來分配新值變爲「name_variable」每次「變量」變化:

<html> 
 

 
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
</head> 
 
<body ng-app="app" ng-controller="ctrl"> 
 

 
    <form class="form-inline" method="post"> 
 
     <div class="form-group"> 
 
      <input type="text" name="form_name" placegolder="form-name" ng-model="variable"/> 
 
      <input type="text" name="{{name_variable}}" placeholder="My name is: {{name_variable}}" /> 
 
     </div> 
 
     <div class="form-group"> 
 
      <button class="btn btn-success" ng-click="submit()">Submit</button> 
 
     </div> 
 

 
     <script> 
 
      var app = angular.module('app', []); 
 

 
      app.controller('ctrl', function($scope) { 
 
       $scope.variable = ''; 
 
       
 
       // Watch the var "variable" for change and update "name_variable" 
 
       $scope.$watch('variable', 
 
         function(newValue, oldValue) { 
 
          $scope.name_variable = 'select-' + newValue; 
 
         }); 
 

 
       // Submit function 
 
       $scope.submit = function() { 
 
        alert('Input Name: ' + $scope.name_variable); 
 
       } 
 
      }); 
 
     </script> 
 

 
</body> 
 
</html>

+0

你這麼遠的東西,我想這樣做的任何方式都無所謂,我終於找到了解決辦法。任何方式都非常感謝。 – toto

1

也許:

<input type="text" name="select[1]" /> 
<input type="text" name="select[2]" /> 
<input type="text" name="select[3]" /> 

foreach($_POST['select'] as $key => $value) { 
    echo "text $key = $value"; 
} 

如果你的意思是你想在PHP他們的價值觀很容易,只是他們的名字,如 「名稱[]」。

<input type="text" name="input[]" /> 

PHP

foreach($_POST['input'] as $value) { 
    // do what you want with the $value 
} 

希望幫助