2016-11-12 5 views
0

У меня есть поле поиска и кнопка отправки. То, что я хочу сделать, - это когда кнопка нажата, значение имени поля поиска отправляется на контроллер. Проблема заключается в том, что имя динамическое, как это имя = "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]" /> 

Php

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 
} 

Надежда, что помогает

Смежные вопросы