Php 从数据库加载数据&;在回发之间保留数据

Php 从数据库加载数据&;在回发之间保留数据,php,Php,在PHP项目中,我正在创建一个页面,在页面加载时从数据库中检索数据,然后允许用户更改数据并进行更新。我必须使用输入文本和选项控件来显示数据。编辑表单数据可能涉及少量的POST请求。要从数据库加载数据并在POSTs之间保留数据,我使用这种方法 从数据库加载数据 $oClass = new DataClass(); $oClass ->GetRecordById($_REQUEST['id']); $dataName = $oClass ->Name; $dataYear = $oCla

在PHP项目中,我正在创建一个页面,在页面加载时从数据库中检索数据,然后允许用户更改数据并进行更新。我必须使用
输入文本
选项
控件来显示数据。编辑表单数据可能涉及少量的
POST
请求。要从数据库加载数据并在
POST
s之间保留数据,我使用这种方法

从数据库加载数据

$oClass = new DataClass();
$oClass ->GetRecordById($_REQUEST['id']);
$dataName = $oClass ->Name;
$dataYear = $oClass ->Year;
输入文本

<input type="text" name="txtName" value="<?php echo isset($_POST['txtName']) ? $_POST['txtName'] : $dataName ?>" >
$arrYears = GetYears();
foreach ($arrYears as $year) {

    if (isset($_POST['ddlYear'])) {
        if ($_POST['ddlYear'] == $year) {
            echo '<option value="' . $year . '"  selected="selected">' . $year . '</option>';
        } else {
            echo '<option value="' . $year . '">' . $year . '</option>';
        }
    } else {
        if ($dataYear == $year) {
            echo '<option value="' . $year . '"  selected="selected">' . $year . '</option>';
        } else {
            echo '<option value="' . $year . '">' . $year . '</option>';
        }
    }
}

您需要保留信息的原因是什么?如果用户提交表单,它将更新信息,因此需要再次获取,以便下一个人进来更新或阅读

尽管您指定了$year=$oClass->year,但仍在上面;但它在任何地方都没有被引用。foreach循环中的$year仅是该foreach循环的局部范围变量,在该循环完成执行后,它将消失

你可以做这样的事情

if (isset($_POST['txtName']))
{
    $name = $_POST['txtName'];
}
else
{
    $name = '';
}

<input type="text" name="txtName" value="<?php echo $name; ?>" />
if(isset($\u POST['txtName']))
{
$name=$_POST['txtName'];
}
其他的
{
$name='';
}
if (isset($_POST['txtName']))
{
    $name = $_POST['txtName'];
}
else
{
    $name = '';
}

<input type="text" name="txtName" value="<?php echo $name; ?>" />
if (isset($_POST['ddlYear'])) {
    echo '<option value="' . $year . ($_POST['ddlYear'] == $year) ? '"  selected="selected"' : '' . '>' . $year . '</option>';
}
else {
    echo '<option value="' . $year . ($movieyear == $year) ? '"  selected="selected"' : '' . '>' . $year . '</option>';
}