是否可以从表单中保存php值以供进一步使用?

时间:2015-08-03 09:24:01

标签: php forms

我目前在一个页面上有一个表单,根据用户输入的内容计算值:

// PROCESS USERS CALCULATIONS
    $ElecAQ = trim($_POST['ElecAQ']);
    $Elecday = trim($_POST['Elecday']);
    $Elecmonth = trim($_POST['Elecmonth']);
    $Elecyear = trim($_POST['Elecyear']);
    $Elecstanding_charge = trim($_POST['Elecstanding_charge']);

<input type="text" style="padding-left: 2px" class="text-box-find" name="ElecAQ" placeholder="0000" value="<?php if(isset($_POST['ElecAQ'])) echo $_POST['ElecAQ'];?>">

  <input type="text" class="day" name="Elecday" style="float: left; margin-right: 2px" value="<?php if(isset($_POST['Elecday'])) echo $_POST['Elecday'];?>" placeholder="DAY" />

<input type="text" class="month"  name="Elecmonth" placeholder="MONTH" style="float: left" value="<?php if(isset($_POST['Elecmonth'])) echo $_POST['Elecmonth'];?>">    

<input type="text" class="year" name="Elecyear" placeholder="YEAR" style="float: left" value="<?php if(isset($_POST['Elecyear'])) echo $_POST['Elecyear'];?>">  

<input type="text" style="padding-left: 2px" class="text-box-find" name="Elecstanding_charge" placeholder=".00" value="<?php if(isset($_POST['Elecstanding_charge'])) echo $_POST['Elecstanding_charge'];?> ">

当提交此表单时,页面将刷新并向用户显示成功消息(他们可以保存的金额)以及另一个表单,提示他们输入详细信息以请求下面的报价。

我的问题是:是否有可能以某种方式保存输入第一个表单的值,然后在提交第二个表单时将其发送到电子邮件中?

当处理完第一个表单时,页面会刷新,所以当从第二个表单发送电子邮件时,我收到的第一个表单的所有值都是空白的。

我真的希望我已经设法解释这个,我希望有人可以告诉我这样做的最好方法吗?

以下是提交第二个表单后发送电子邮件的代码部分:

$emailTo = 'email@email.co.uk';
    $subject = 'Savings Calculator -Submitted request from '.$name;
    $sendCopy = trim($_POST['sendCopy']);
    $body = "First Name: $contactName \n\nBusiness Name: $businessname \n\nEmail: $email \n\nPhone: $phone \n\nMobile: $mobile \n\nBest time of day to call: $time\n\nUSERS CALCULATIONS: $_SESSION['ElecAQ']";

    $headers = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

2 个答案:

答案 0 :(得分:3)

您可以使用$_SESSION变量来保存可以用于其他表单的变量。

在顶部使用session_start();开始访问会话变量。

为会话变量赋值。 $_SESSION["favcolor"] = "green";

访问echo $_SESSION["favcolor"];

答案 1 :(得分:2)

您需要在两个页面的顶部添加session_start();

将值分配给会话变量

$_SESSION['ElecAQ'] = trim($_POST['ElecAQ']);

访问会话值

echo $_SESSION["ElecAQ"];

尝试示例

<?php
session_start();

$_SESSION['ElecAQ'] = trim($_POST['ElecAQ']);
$_SESSION['$Elecday'] = trim($_POST['Elecday']);
$_SESSION['$Elecmonth'] = trim($_POST['Elecmonth']);
$_SESSION['$Elecyear'] = trim($_POST['Elecyear']);
$_SESSION['$Elecstanding_charge'] = trim($_POST['Elecstanding_charge']);

// access session values call
echo $_SESSION['ElecAQ'];
?>

电子邮件代码

刚刚将USERS CALCULATIONS: $_SESSION['ElecAQ']";更改为USERS CALCULATIONS: ".$_SESSION['ElecAQ'];

更新

$emailTo = 'email@email.co.uk';
$subject = 'Savings Calculator -Submitted request from '.$name;
$sendCopy = trim($_POST['sendCopy']);
$body = "First Name: $contactName \n\nBusiness Name: $businessname \n\nEmail: $email \n\nPhone: $phone \n\nMobile: $mobile \n\nBest time of day to call: $time\n\nUSERS CALCULATIONS: ".$_SESSION['ElecAQ'];

$headers = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;