有没有办法在表单提交期间比较PHP中的文本框输入新旧?

问题描述 投票:-1回答:2

我有一个提交电子邮件的表单。在加载表单时,使用来自服务器的当前电子邮件更新文本框。

如果我希望在表格上更改电子邮件,请执行某些操作。如果电子邮件没有改变我想什么都不做。

这在PHP中甚至可能吗?

<?php
//email value from sql database, value of textbox before changed.
$val = $emailVal;
//new value from textbox
$newVal = $updatedVal;

if($val != "" && $val != $newVal){
    echo('the textbox has changed');
    //now update firebase database
}else{
    echo('nothing has changed');
    //now do nothing
};
?>

事实证明,我只需要使用$ _SESSION来获取比较所需的关联变量。谢谢您的帮助!

$_SESSION["oldEmail"] = $sql_data->get_field('email'); 
$oldEmail = $_SESSION["oldEmail"]; 

echo($_SESSION['oldEmail']);
php
2个回答
0
投票

很简单,你需要一个参考副本,然后用它来比较。

运行db select语句,将其置于关联数组中,然后将其粘贴到会话变量中,或者拉出想要比较的位并将它们放入关联数组中并将其粘贴在会话变量中。

然后在表单提交,检查表单值,根据需要与会话变量中存储的内容进行比较,并采取适当的操作。也许在db更新等之后,您还会更新会话变量,因此您可以在每个页面上引用所需的值来自定义站点以获取首选项等。


0
投票

是的,您可以轻松地在提交表单时比较数据库中的值和教科书中的值,如果有更改,您可以执行所需的操作。

<?php

if(isset($_POST['button'])){
$oldEmail =    getEmail(); 
if($_POST['email'] == $oldEmail){
// write your code
}
else { }
}

function getEmail(){
// write your sql query to get the email
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.