提交后保留值
retaining values after submitting
我正在尝试构建一个带有按钮的 PHP 计算器。我的问题之一是我的值不能超过一位。例如,当我尝试输入一个值(例如 33)时,文本框中的结果变为 3,因为当我对所有数字使用提交时页面得到刷新。只能使用一个 PHP 页。
这个 是向我建议的,但它并没有解决我的问题,因为它使用了不止一页。此外,超过一位数似乎不起作用。
<input type="text" value="<?php
if(isset($_GET['number'])){
$number = $_GET['number'];
echo '<input type="hidden" value="'. print ($number) .'"';
} ?">
此外,这是我的 HTML
的示例
<input type="submit" value="9" name="number"class="button1">
这是我的照片 UI An example of my UI
您可以使用会话变量在页面加载之间保留数据。基本上,你把这个:
session_start();
在每个页面的开头你想共享变量,然后你 declare/call 他们像这样:
$_SESSION["number"] = 3;
因此,如果您 post/reload/navigate 访问属于会话一部分的另一个页面,$_SESSION["number"] 仍将为 3,您可以向其中添加另一个 3。
更进一步,您通常不希望提交您添加的每个数字的结果作为 HTML 表格。您可能想要使用的是 AJAX 调用,仅调用 return 计算字段的内容。这样您就可以实时计算而无需重新加载整个页面,因为这听起来就是您想要的。
jQuery的AJAX方法非常适合这个。
工作方式是你有 2 个 php 文件,1 个是你的视图,另一个是控制器。视图是保持加载表单和其他 GUI 元素的页面,每次您在视图中进行更改时都会调用控制器。控制器不是 return 整个页面,而是只是数学运算,因此它只是 return 你正在做的事情的数字部分,你可以在你需要的任何地方重新加载它到你的视图中。
[跟进]
对于纯 php/html 的简单解决方案,请尝试如下操作:
<?php
session_start();
If (!isset($_SESSION['start'])) {$_SESSION['start'] = true;}
if ($_GET['clear'] == true || $_SESSION['start'] == true){
$_SESSION['number'] = "";
$_SESSION['start'] = false;
}
if(isset($_GET['number'])){
$_SESSION['number'] = $_SESSION['number'].$_GET['number'];
}
?>
<input type="text" value="<?=$_SESSION['number']?>">
我正在尝试构建一个带有按钮的 PHP 计算器。我的问题之一是我的值不能超过一位。例如,当我尝试输入一个值(例如 33)时,文本框中的结果变为 3,因为当我对所有数字使用提交时页面得到刷新。只能使用一个 PHP 页。
这个
<input type="text" value="<?php
if(isset($_GET['number'])){
$number = $_GET['number'];
echo '<input type="hidden" value="'. print ($number) .'"';
} ?">
此外,这是我的 HTML
的示例 <input type="submit" value="9" name="number"class="button1">
这是我的照片 UI An example of my UI
您可以使用会话变量在页面加载之间保留数据。基本上,你把这个:
session_start();
在每个页面的开头你想共享变量,然后你 declare/call 他们像这样:
$_SESSION["number"] = 3;
因此,如果您 post/reload/navigate 访问属于会话一部分的另一个页面,$_SESSION["number"] 仍将为 3,您可以向其中添加另一个 3。
更进一步,您通常不希望提交您添加的每个数字的结果作为 HTML 表格。您可能想要使用的是 AJAX 调用,仅调用 return 计算字段的内容。这样您就可以实时计算而无需重新加载整个页面,因为这听起来就是您想要的。
jQuery的AJAX方法非常适合这个。
工作方式是你有 2 个 php 文件,1 个是你的视图,另一个是控制器。视图是保持加载表单和其他 GUI 元素的页面,每次您在视图中进行更改时都会调用控制器。控制器不是 return 整个页面,而是只是数学运算,因此它只是 return 你正在做的事情的数字部分,你可以在你需要的任何地方重新加载它到你的视图中。
[跟进]
对于纯 php/html 的简单解决方案,请尝试如下操作:
<?php
session_start();
If (!isset($_SESSION['start'])) {$_SESSION['start'] = true;}
if ($_GET['clear'] == true || $_SESSION['start'] == true){
$_SESSION['number'] = "";
$_SESSION['start'] = false;
}
if(isset($_GET['number'])){
$_SESSION['number'] = $_SESSION['number'].$_GET['number'];
}
?>
<input type="text" value="<?=$_SESSION['number']?>">