PHP $ _POST содержимое в виде массива - PullRequest
0 голосов
/ 20 июня 2020

Следующий код генерирует поля ввода, каждое поле имеет несколько скрытых вводов. Я хочу опубликовать эти сгенерированные поля, используя метод формы $_POST. На $_POST я хочу получить (или упорядочить) все входные данные каждого поля в сгруппированной форме, например, вот так:

1 => array(
    'type' => 'text',
    'name' => '',
    'label' => ''
),

2 => array(
    'type' => 'radio',
    'name' => '',
    'label' => ''
)
..
..

Мой вопрос в том, как я могу получить данные в указанном выше формате ?

Вот код, который я использую для создания полей:

$('#text').on('click', function(e){
  input_html = '<div class="field">' +
             '<label>Label</label>' +
             '<input type="text" value="">' +
             '<input type="hidden" name="type" value="input">' +
             '<input type="hidden" name="name" value="">' +
             '<input type="hidden" name="label" value="">' +
             '</div>';
       
       $('#fields').append(input_html);
})

$('#radio').on('click', function(e){
  input_radio = '<div class="field">' +
              '<label>Radio</label>' +
              '<input type="radio" value="">' +
              '<input type="hidden" name="type" value="radio">' +
              '<input type="hidden" name="name" value="">' +
              '<input type="hidden" name="label" value="">' +
              '</div>';
        
        $('#fields').append(input_radio);
        
})
body {
  padding: 20px;
  font-family: Helvetica;
}



button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
  cursor: pointer;
}

.field {
  margin-bottom: 10px;
}

label {
  margin-right: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrap">

 
 <div id="fields">  
      
  
  </div>
  
    
  <button id="text">Add text field</button>
  <button id="radio">Add radio field</button>
  
    
</div>

1 Ответ

1 голос
/ 20 июня 2020

Вы можете использовать это как - name="input_filed_name[]" это вернет массив. По вашим кодам:

$('#text').on('click', function(e){
  input_html = '<div class="field">' +
             '<label>Label</label>' +
             '<input type="text" value="">' +
             '<input type="hidden" name="type[]" value="input">' +
             '<input type="hidden" name="name[]" value="">' +
             '<input type="hidden" name="label[]" value="">' +
             '</div>';
       
       $('#fields').append(input_html);
})

$('#radio').on('click', function(e){
  input_radio = '<div class="field">' +
              '<label>Radio</label>' +
              '<input type="radio" value="">' +
              '<input type="hidden" name="type[]" value="radio">' +
              '<input type="hidden" name="name[]" value="">' +
              '<input type="hidden" name="label[]" value="">' +
              '</div>';
        
        $('#fields').append(input_radio);
        
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...