php - Associative array from form inputs -


i'm building calculator mmo guild. @ moment i'm looking way make data more easy access calcules.

basically, have form 5 text fields (just test, there lot more), , select list (for choose proper equation).

example code:

<input type="text" id="strength" name="strength" value="0"> <input type="text" id="dexterity" name="dexterity" value="0"> <select name="equation" id="equation">     <option name="damage" id="damage">damage</option>     <option name="defense" id="defense">defense</option> </select> 

so form procesed through php file.

<form action="file.php" method="post">     //inputs here     <input type="submit" value="calculate"> </form> 

at moment i'm receiving data in php file vars:

$strength = (int)$_post['strength']; $dexterity = (int)$_post['dexterity']; 

for start ok, when script complete there more 20 fields... wanna store data in array, this:

$strength = array( 'fuerza' => 125,  'dexterity ' => 125, //and more fields... ); 

and use data in various different functions equations:

function equation1() {     $damage = $stats['dexterity'] + $stats['strength']; } 

i have read several posts , tutorials use name value inputs create array somethin this: name="name[]". doesn't work me how want. calculator receive 1 value each "stat", , need have these values in array can access them different fuctions in script.

please ask me if question not clear, , sorry if english bad.

edit after solve

i let here code after solve:

.html example:

<input type="text" id="strength" name="stats[strength]" value="0"> <input type="text" id="dexterity" name="stats[dexterity]" value="0"> <select name="operation" id="operation">     <option name="damage" id="damage">damage</option>     <option name="defense" id="defense">defense</option> </select> 

.php example:

function critop($stat) {     $result = $stat * 0.00725;     return $result; } switch($_post['operation']){ case 'damage' :      $critical = critop($_post["stats"]["dexterity"]);     break; //more case... 

you can use brackets in name field direct php stick them in array. if use [] form numerical array, can specify associative key in brackets [dexterity]

<input type="text" id="dexterity" name="strength[dexterity]" value="125"> <input type="text" id="fuerza" name="strength[fuerza]" value="125"> 

this result in

$_post['strength'] = array( 'dexterity' => 125,  'fuerza ' => 125, ); 

bonus points

you can continue enforce integer values using array_map:

$_post['strength'] = array_map('intval', $_post['strength']); 

this make sure values integers.


Popular posts from this blog