【问题标题】:PHP: How to anchor a variable within a pagePHP:如何在页面中锚定变量
【发布时间】:2013-04-14 02:17:57
【问题描述】:

我正在尝试使用 PHP 制作一个简单的计算表格。一个页面将包含文本文件,用户将在其中输入数值并通过点击按钮,将执行数学运算并在另一个文本字段中输出。

这是我的代码:

    <html>

<form name="form01" method="post">
<p>Quantite de vecteur: <input type="text" name="B" /></p>
<p>Taille du vecteur: <input type="text" name="A" /></p>
<p>Taille de l'insert: <input type="text" name="C" /></p>
   <input type="submit" name="ratio_calc" id="ratio_calc" value="calculer">
</form>

<?php

if(isset($_POST['ratio_calc'])) { 

    $A = 'A';
    $B = 'B';
    $C = 'C';
    $ratio = (($B * $C) / $A);

}
?>

p>Le ratio: <input type="text" name="ratio" value=<?php echo $ratio ?> /></p>

</html>

所以,我想将 $ratio 输出到名为“ratio”的文本字段中。很简单,不知何故它确实有效,但我一直得到未定义变量:比率 实际点击按钮“计算器”之前。

我是 PHP 脚本的重度菜鸟,但我假设变量 A、B、C 和比率是在 PHP 脚本的第一部分中定义的,并且当脚本结束时,它们会被删除。我想我可以通过以某种方式修复或锚定这些变量来解决问题,以便它们通过文件“保存在内存中”。可能吗?

我在某个地方找到了可以使用 $config = array( 的地方,将其保存为 PHP 文件,然后在每次新的 PHP 脚本以 require("path-toPHP file"); 开头时调用它

真的有可能吗,具体怎么做,还有其他更简单的方法吗?

感谢你们帮助我学习这门语言

【问题讨论】:

    标签: php config require


    【解决方案1】:

    即使没有填写表格,也没有计算出比率,您正在打印比率。

    你需要做的:

    <p>Le ratio: <input type="text" name="ratio" <?php if (isset($ratio)) {echo 'value="'.$ratio.'"';} ?> /></p>
    

    此外,您没有正确获取输入值。应该是:

    $A = $_POST['A'];
    $B = $_POST['B'];
    $C = $_POST['C'];
    

    【讨论】:

    • 我把这条线放在哪里?如果我尝试在 p>Le ratio: /> 之前调用它,似乎有错误.. .
    • 你把它放在你所拥有的那一行。
    • 嗯,它现在工作得很好。所以,如果我做对了,问题就在于这个值是用“echo”输出的,甚至在通过点击按钮实际计算它之前。但是,为什么在脚本关闭后变量会被保留?
    • 当您提交表单时,脚本会重新开始,并且不会保留任何内容。但由于它是作为表单提交的结果运行的,$_POST 变量会自动填充您的表单输入。
    【解决方案2】:

    $A = 'A'; $B = 'B'; $C = 'C'; $ratio = (($B * $C) / $A);

    如果您将值“A”分配给 $A,将“B”分配给 $B 等等,那么计算的意义何在?

    要将&lt;input type="text" name="A" /&gt; 的值转换为 $A,您必须将其称为 $A = $_POST['A'] 等等。

    关于未设置 $ratio 的实际问题,请在 if(isset($_POST['ratio_calc'])) 检查之外声明该变量,因为如果此检查不正确,则不会设置该变量,并且您将获得“未定义变量:比率”

    【讨论】:

    • 感谢您对值的精确性。我理解我的错误,是的,我的代码一开始就没有任何意义。但我不明白 $ratio 的事情。你能再解释一下以确保我明白吗?
    猜你喜欢
    • 2018-10-25
    • 2015-09-20
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2020-01-11
    • 2012-01-31
    相关资源
    最近更新 更多