2016-11-12 18 views
0

私は検索フィールドと送信ボタンを持っています。私がしたいのは、ボタンがクリックされたとき、検索フィールドの名前の値がコントローラに送信されるときです。問題は、name = "select - {{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>
おそらく、3210

+0

を助け

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

PHP

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

ホープあなたはこれまでのところ、私が何をしたいかのように、それは問題ではありませんどのような方法は、私は最終的に解決策を見つけています。どうもありがとうございました。 – toto

1

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

PHPの

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

あなたが簡単にPHPでそれらの値を取得したい意味場合は、単に "[]名" のような名前を付けます。

関連する問題