我有一组数组,每个数组都有一个属于它们的值。此值通过一个函数来查找百分比,然后显示在页面上。这是该代码的片段:
<?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>
如何添加可能会改变此等式的输入表单。具体来说,我希望能够添加一个变量($ sets),在变量之前将它们乘以数组项的值。
我能想到的最接近的事情就是这样:
$sets = value from input form, if no value entered, default as 1
$balls = array(
'blue' => 4 * $sets,
'red' => 13 * $sets,
'green' => 5 * $sets
);
等式的其余部分将照常工作,但可以使用输入表单中提交的$ sets中的新值进行更新。此外,这样的事情会立即更新网页上显示的数字吗?
答案 0 :(得分:1)
如果$sets
是您唯一对更改感兴趣的内容,则可以轻松设置一个小型HTML表单(假设index.php是您的PHP文件的名称):
<form action="index.php" method="post">
Number of sets: <input type="text" name="sets" />
<br /><input type="submit" value="Get sum!" />
</form>
在您的PHP代码中,您可以执行以下操作以在有人提交HTML表单时获取值:
$sets = 1; // default value
// Make sure a value was sent
if(isset($_POST['sets'])) {
// Check that sets is numeric, and above 0
if(is_numeric($_POST['sets']) && $_POST['sets'] > 0) {
$sets = $_POST['sets'];
}
}
// Do computation with $sets...
是的,如果您将HTML表单中的值发送到PHP页面,页面上的值将根据您在表单中发送的内容立即显示。
看起来你开始使用PHP(或者一般的编程) - 祝你好运!要记住的一个重要规则是验证用户输入,就像我们在此处所做的那样:我们已经检查过我们是否收到了一个号码(因为我们需要的号码)并且该值大于0。
一旦我们确定它符合我们的标准,我们就只将$ _POST [&#39; sets&#39;]的值添加到我们的变量中。你永远不会知道人们会试图发送给你什么,你想为任何案件做好准备。
在开始时将$sets
设置为1意味着我们从默认值开始,我们可以担心在我们想要时将$sets
设置为其他至。相反,请考虑一下:
if(isset($_POST['sets'])) {
if(is_numeric($_POST['sets']) && $_POST['sets'] > 0) {
$sets = $_POST['sets'];
}
else {
$sets = 1;
}
}
else {
$sets = 1;
}
这不太好,因为在任何给定的情况下,$ sets肯定会有一个有效的值,这是不太明显的。这也意味着如果您决定更改默认值,则需要将1
更改为其他数字。
在这个例子中,这是相当简单的,因为代码很小,但是我确信一旦你用更复杂的检查编写更大的代码,你就可以想象这个好处。