提交给自己后重新填写表单

时间:2013-11-12 16:39:02

标签: php html forms http-post

我刚刚开始使用PHP和 到目前为止,我对这个表单有2个问题(我相信我会有更多的lol)

这个表单应该向自己提交数据,重新填充是按下后退按钮。

第一个问题,对于单选按钮php没有读取>在文本Mr / Mrs / Ms之前作为输入标记的结束。

第二个问题,我收到了所有字段的“未定义索引”错误。

文本字段sem可以工作。如果我输入内容,请提交,然后回复文本。

    <form method="POST"
      action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

    <table>
    <tr>
    <td>Title:</td>
    <td><input type="radio" name="title" value="Mr" <?php if ($_POST['title'] == "Mr") echo "CHECKED"; ?>>Mr.</td>
    </tr><tr>
    <td></td>
    <td><input type="radio" name="title" value="Mrs" <?php if ($_POST['title'] == "Mrs") echo "CHECKED";?>>Mrs.</td>
    </tr><tr>
    <td></td>
    <td><input type="radio" name="title" value="Ms" <?php if ($_POST['title'] == "Ms") echo "CHECKED";?>>Ms.</td>
    </tr><tr>
    <td>First Name:</td><td><input type="text" name="fname" width=50 value="<?php if ($_POST['fname']) echo $_POST[fname];?>" ></td>

提前谢谢。

2 个答案:

答案 0 :(得分:1)

变化:

action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"

为此:

action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"

echo $_POST[fname]

为此:

echo $_POST['fname']

答案 1 :(得分:1)

要修复未定义的索引错误,您可以使用isset检查有问题的POST变量是否确实存在,然后再尝试使用它们:

if(isset($_POST['my_form_value']) && $_POST['my_form_value'] == 'Mr'){ 
    echo "CHECKED";
}

array_key_exists也可以,如果您喜欢这样:

if(array_key_exists('my_form_value', $_POST) && $_POST['my_form_value'] == 'Mr'){ 
    echo "CHECKED";
}

对于标签,请尝试使用:

<input type="radio" name="title" value="Mrs" />

而不是:

<input type="radio" name="title" value="Mrs" >

请注意我示例末尾的/>,因为它实际上会关闭输入标记。