Как я могу группировать элементы формы

Я получил эту форму:

<form method="post" action="" accept-charset="utf-8"> <p> <label>first_field</label><br /> <input type="text" id="first_field" name="points[]" /><br /> <input type="radio" value="inside" name="group_1" checked /><br /> <input type="radio" value="outside" name="group_1"><br /> </p> <p> <label>second_field</label><br /> <input type="text" id="second_field" name="points[]" /><br /> <input type="radio" value="inside" name="group_2" checked /><br /> <input type="radio" value="outside" name="group_2"><br /> </p> </form> 

То, что я хочу выполнить, – проверить, проверено ли внутри или снаружи, если снаружи я проверил точки умножения для данного ввода текста на 1,5. Кстати, это нужно рассчитать в PHP.

Как я могу это сделать?

ОБНОВИТЬ

 Array ( [bonus] => Array ( [points] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 ) [group] => Array ( [0] => inside [1] => outside [2] => outside [3] => inside [4] => inside [5] => inside [6] => inside [7] => inside [8] => outside [9] => inside [10] => inside [11] => inside [12] => outside [13] => inside [14] => inside ) ) ) 

Выше результат print_r ($ _ POST)

Теперь ho я сравниваю / pare Массив точек с массивом Group, поэтому:

точки [0] «связаны» с группой [0] и т. д.?

Как оказалось, вы можете группировать поля с помощью HTML-форм. Проверьте этот код здесь: (особенно обратите внимание на атрибуты name )

 <form method="post" action="" accept-charset="utf-8"> <p> <label>first_field</label><br /> <input type="text" id="first_field" name="field[1][points]" /><br /> <input type="radio" value="inside" name="field[1][group]" checked /><br /> <input type="radio" value="outside" name="field[1][group]"><br /> </p> <p> <label>second_field</label><br /> <input type="text" id="second_field" name="field[2][points]" /><br /> <input type="radio" value="inside" name="field[2][group]" checked /><br /> <input type="radio" value="outside" name="field[2][group]"><br /> </p> </form> 

Не заполняя ничего, это даст массив POST, например:

 Array ( [field] => Array ( [1] => Array ( [points] => [group] => inside ) [2] => Array ( [points] => [group] => inside ) ) ) 

Надеюсь, это ответ на ваш вопрос, это аккуратный маленький трюк, который я не видел, когда многие другие обсуждали. Следует отметить, что вам нужно вручную указать идентификационный номер в любом наборе скобок. Вы можете использовать только [] в качестве последнего набора скобок.

Я расширяю этот ответ, потому что мне потребовалось некоторое время, чтобы отследить PHP-код, который будет анализировать данные из формы.

Используя этот метод в HTML, вы получите массив пар ключ-значение.

  <input type="text" id="first_field" name="field[1][points]" /><br /> <input type="radio" value="inside" name="field[1][group]" checked /><br /> <input type="radio" value="outside" name="field[1][group]"><br /> 

Вот как я использовал PHP для анализа массива.

 foreach ($_POST as $record => $detail) { // The submit button from my HTML form was POSTing data // so I used an if statement to remove it from the result set if(empty($firstRow)) { $firstRow = 1; } else { // since $detail is still an array, you have to loop through it again foreach ($detail as $key => $value) { echo $key."<br/>"; // $key would contain the key value (1 or 2) echo $value['points']."<br/>"; echo $value['group']."<br/><br/>"; } } } 

Надеюсь, этот ответ поможет!

Вам просто нужно поймать, что он возвращается в переменной $_POST , и обработать его. Если после заполнения формы вы выполните var_dump($_POST) , вам следует лучше понять, что делать.