You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP POST方法生成表格后如何保留输入框内的值

解决方案:PHP接收POST参数生成表格后保留输入框已填数值

要实现表单提交后留存用户之前输入的内容,核心逻辑是在渲染输入框时,把经过校验的POST参数值绑定到input标签的value属性上,同时对输出内容做HTML实体转义,避免特殊字符破坏页面结构、防范XSS风险。


具体修改要点

  • 给两个数字输入框新增value属性,输出对应经过校验的$nA、$nB变量值
  • 输出变量到HTML属性时使用htmlspecialchars()函数做转义处理
  • 原逻辑用-1作为无效值标记,如果业务允许用户输入-1,建议换用null作为初始无效标记,避免合法输入被误判

修改后完整代码

表单+输出部分

<form action="zadatak_12-4.php" method="post">
    <label for="nA">Prvi broj: </label>
    <!-- 绑定已提交的nA值到value属性,无效值时留空 -->
    <input type="number" id="nA" name="nA" value="<?php echo htmlspecialchars($nA != -1 ? $nA : ''); ?>">
    <label for="nB">Drugi broj: </label>
    <!-- 绑定已提交的nB值到value属性,无效值时留空 -->
    <input type="number" id="nB" name="nB" value="<?php echo htmlspecialchars($nB != -1 ? $nB : ''); ?>">
    <button type="submit">Generiraj</button>
</form><br>

<!-- 输出生成的表格/错误提示 -->
<?php echo $pom; ?>

PHP逻辑部分(优化了无效值标记逻辑,避免-1被误判)

<?php
// 用null作为初始无效值标记,和用户合法输入做区分
$nA = null;
$nB = null;

if(isset($_POST['nA']) && is_numeric($_POST['nA'])) $nA = $_POST['nA'];
if(isset($_POST['nB']) && is_numeric($_POST['nB'])) $nB = $_POST['nB'];

if(!is_null($nA) && !is_null($nB))
{
    $odBroj = $nA; 
    $doBroj = $nB;
    if($nB > $nA) { 
        $odBroj = $nB; 
        $doBroj = $nA;
    }
    $pom  ="<table class='tablica'>";
    $pom .="<tr><th>Broj</th><th>Kvadrat</th><th>Alert poruka</th></tr>";
    
    for ($i = $odBroj; $i >= $doBroj; $i--)
    {
        $pom .= "<tr><td>".$i."</td><td>".($i*$i)."</td><td><span class='glumiLink'>Poruka</span></td></tr>";
    }
    $pom .="</table>";
} else {
    $pom  ="<p>Pogrešno uneseni ili nedefinirani parametri!</p>";
}
?>

效果说明

首次打开页面时输入框为空,用户提交表单后,PHP会把接收到的合法参数回填到输入框的value属性中,用户可以直接看到之前填写的数值,无需重复输入。

内容的提问来源于stack exchange,提问作者Dominik Antonio Sajko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:45:58