我有一个提交数据的表单,作为测试,我试图首先检查是否在提交时设置了变量。如果设置了变量,将显示一个文本,说明“变量已设置”。但是如果没有设置,将显示一个文本,说“变量未设置”,一旦未设置变量,则应设置它,以便下次提交表单时显示变量,但这不是为我工作,由于某种原因它始终显示变量未设置,我的PHP代码将在下面:
<?php
if (isset($test)) {
echo "This var is set";
}
if (!isset($test)) {
echo "This var is not set";
$test = 'set';
}
?>
<form action="" method="post">
<input type="text" id="text" name="text" autocomplete="off"><br><br>
<input type="submit" value="submit">
</form>
我感到非常愚蠢,因为我无法做一些看起来那么容易的事情,我只是在学习并尝试自学,谢谢你提供的任何帮助!!!
答案 0 :(得分:2)
如果您使用表单提交值,请尝试使用此表,
if (isset($_POST['text'])) {
echo "This var is set";
}
if (!isset($_POST['text'])) {
echo "This var is not set";
$test = 'set';
}
否则,如果变量设置为空值,如$test = '';
(这意味着变量已设置但没有值)它将仅执行您的第一个if
条件。
答案 1 :(得分:2)
工作代码和说明:
<?php
$test="";
if (isset($_POST["text"])) { //always directly check $_POST,$_GET var without assigning
echo "This var is set";
$test=$_POST["text"]; // then assign
}
else{ // and use else clause for otherwise case
echo "This var is not set";
$test = 'set'; // AND if you want set to default/custom value in case of not set.
}
?>
<form action="" method="post">
<input type="text" id="text" name="text" autocomplete="off">
<br /><br />
<input type="submit" value="submit">
</form>
答案 2 :(得分:0)
您尚未声明变量$test
。
除非你在这里还没有得到一些PHP,否则你的变量是空的。提交表单时,输入将添加到$ _POST数组(对于method = "post"
)或$ _GET数组(对于method = "get"
)。
要修复:
<?php
if (isset($_POST['text'])) {
$test = $_POST['text'];
echo "This var is set";
}
if (!isset($_POST['text'])) {
echo "This var is not set";
$test = 'set';
}
?>
<form action="" method="post">
<input type="text" id="text" name="text" autocomplete="off"><br><br>
<input type="submit" value="submit">
</form>
答案 3 :(得分:0)
<?php
$test=$_GET["text"];
if (isset($test)) {
echo "This var is set";
}
if (!isset($test)) {
echo "This var is not set";
$test = 'set';
}
?>
<form action="#" method="get">
<input type="text" id="text" name="text" autocomplete="off"><br><br>
<input type="submit" value="submit">
</form>