忽略PHP_SELF的初始加载

时间:2014-03-24 13:54:36

标签: php html post

我正在学习PHP,我有一个页面可以重新加载回来。我想知道你是否可以忽略页面初始加载时的某个功能,只有在单击表单提交按钮后才调用它。

页面会传递一个' ticketID'并从中加载信息。然后,我希望能够使用以下表单方法添加注释:

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<strong>Add Note:</strong> 
<textarea name="note" rows="5" cols="40" value=><?php echo htmlspecialchars($note);?></textarea>
<span class="error">*<?php echo $noteErr;?></span><br>

用户然后单击提交按钮以提交要处理的注释:

<button type='submit' name='ticketID' value= <?php echo $_POST['ticketID'];?> >View</button>
</form>

&#39; ticketID&#39;然后传回页面重新加载信息。

如果按下提交按钮且未输入任何记事,我想要一个消息框显示,通知用户包含一个记事。我试过了:

if (!empty($_POST["note"])) 
    {
    echo "This has updated...";
    } else {
    echo "Missing!";
    }

但是,即使在页面的初始加载时,这也会加载错误消息。我已经尝试将变量设置为POST ticketID值并在页面显示之后和测试错误消息之前清除POST值:

$tempTicketID = $_POST['ticketID'];
$_POST['ticketID'] = NULL;

然后测试错误消息,最后在页面结束之前重新设置POS值,以便再次正确重新加载:

$_POST['ticketID'] = $tempTicketID; 

然而,POST值没有保存,页面重新加载时没有任何信息。

任何帮助都会非常感激。

以下是完整的代码布局:

##LOAD THE PAGE INFO...

#Set the temp variable and clear the post value
$tempTicketID = $_POST['ticketID'];
$_POST['ticketID'] = NULL;

#Load the form
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <strong>Add Note:</strong> 
    <textarea name="note" rows="5" cols="40" value=><?php echo htmlspecialchars($note);?></textarea>
    <span class="error">*<?php echo $noteErr;?></span><br>

    <button type='submit' name='ticketID' value= <?php echo $_POST['ticketID'];?> >View</button>
    </form>

#Test if the note is empty and the form button has been pressed
    if (!empty($_POST["note"])) 
        {
        echo "This has updated...";
        } elseif (empty($_POST["ticketID"] {
        echo "Missing!";
        }

#Set POST value back to reload the page
$_POST['ticketID'] = $tempTicketID; 

1 个答案:

答案 0 :(得分:1)

为了实现这一目标,我们需要重新调整表格。您可以通过测试必须单击提交的按钮来检查表单是否已提交。但是,您将该按钮用于多种用途。为了简化,我们将有一个单独的提交按钮,并通过带有隐藏输入的表单传递ticketID值。您不应该需要取消设置$ _POST值的代码。

<button type='submit' name='submit'> View</button>
<input type='hidden' name='ticketID' value= <?php echo $_POST['ticketID'];?> />

然后,您可以通过此快速检查来测试表单是否已提交:

if (isset($_POST['submit'])) {
    if (!empty($_POST["note"])) 
    {
        echo "This has updated...";
    } else {
        echo "Missing!";
    }
}