我正在学习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;
答案 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!";
}
}