Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I group form elements

Tags:

html

forms

php

I got this form:

<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> 

What i want to accomplish is to check if inside or outside is checked, if outside i checked the multiply points for the given text input by 1,5. BTW this needs to be calculated in PHP.

How can I do that?

UPDATE

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             )      )  ) 

Above is the result of print_r($_POST)

Now ho do I compare/pare The points array with the Group array so:

points[0] gets "connected" to group[0] etc.?

like image 623
andkjaer Avatar asked Apr 27 '11 09:04

andkjaer


People also ask

What is the best way to group form elements?

Just use a div.

Which tag is used for grouping?

Grouping can be performed with the help of various tags such as <div>, <header>, <footer>, and <section>.

Which element is used to group input elements in a form?

The <fieldset> and <legend> Elements The <fieldset> element is used to group related data in a form.


1 Answers

As it turns out, you can group fields using HTML forms. Check out this code here: (specifically note the name attributes)

<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> 

Without filling anything in, this will yield a POST array like this:

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

I hope this answered your question, it's a neat little trick I haven't really seen many others discuss. One thing to note is that you'll need to manually specify an ID number in that any set of brackets. You can only use [] as the last set of brackets.

like image 175
Dominic Barnes Avatar answered Sep 24 '22 17:09

Dominic Barnes