0

我刚刚开始使用 PHP,到目前为止,我在使用这种表单时遇到了 2 个问题(我相信我会有更多的问题)

该表单应该向自身提交数据,并在按下后退按钮时重新填充。

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

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

文本字段虽然可以工作。如果我输入一些东西,提交然后回击文本就在那里。

    <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>

先感谢您。

4

2 回答 2

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" >

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

于 2013-11-12T16:44:27.007 回答
1

改变:

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

为了这:

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

echo $_POST[fname]

为了这:

echo $_POST['fname']
于 2013-11-12T16:43:27.893 回答