arrays - How can I change a PHP variable with an input form? -


i have sets of arrays each have value attributed them. value goes through function find percentage displayed on page. here's snippet of code:

<?php $balls = array(     'blue' => 4,     'red' => 13,     'green' => 5 );  function percent($array, $element) {     $total = array_sum($array);     $elementvalue = $array[$element];     return ($elementvalue / $total) * 100; } ?>  <html> <body> blue balls per set:<?php echo $balls["blue"]; ?>. percentage of blue balls:<?php echo percent($balls, 'blue'); ?>%. </body> </html> 

how add input form change equation around. specifically, want able add variable ($sets) multiply values of array items before summed up.

the closest thing can think of this:

$sets = value input form, if no value entered, default 1  $balls = array(     'blue' => 4 * $sets,     'red' => 13 * $sets,     'green' => 5 * $sets ); 

the rest of equation work usual, updated new value $sets submitted in input form. also, such thing update numbers displayed on webpage instantly?

if $sets thing you're interested in changing, can set small html form (assuming index.php name of php file):

<form action="index.php" method="post">  number of sets: <input type="text" name="sets" />  <br /><input type="submit" value="get sum!" /> </form> 

in php code, can following value when submits html form:

$sets = 1; // default value  // make sure value sent if(isset($_post['sets'])) {     // check sets numeric, , above 0     if(is_numeric($_post['sets']) && $_post['sets'] > 0) {         $sets = $_post['sets'];     } }  // computation $sets... 

yes, if send value html form php page, values on page according sent in form immediately.

it looks you're starting php (or programming in general) – best of luck! 1 important rule remember validate user input, did here: we've checked sent number (as that's require) , value bigger 0.

we've added value of $_post['sets'] our variable once sure met our criteria. never know people might try send , want prepared case.

setting $sets 1 in beginning means we're starting default value , can worry setting $sets else when want to. consider in contrast:

if(isset($_post['sets'])) {     if(is_numeric($_post['sets']) && $_post['sets'] > 0) {         $sets = $_post['sets'];     }     else {         $sets = 1;     } } else {     $sets = 1; } 

this less nice because less obvious $sets will, positively, have valid value in given case. means need change 1 number if decide change default value.

this rather trivial in example since code small, i'm sure can imagine benefit once write bigger code more complex checks.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

jquery - Keeping Kendo Datepicker in min/max range -