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
Post a Comment