我的代码有问题。我尝试在发送一种形式后定义变量,并在发送另一种形式后使用它。当我这样做时,我会收到“通知:未定义的变量:变量...”,我敢打赌,这很容易解决,但我只是一个初学者。
<form id="formOne" method="post">
<input method="post" type="submit" name="one" value="Confirm">
</form>
<form id="formTwo" method="post">
<input method="post" type="submit" name="two" value="Confirm">
</form>
<?php
if (isset($_POST['one']))
{
$variable="SOME STRING";
}
if (isset($_POST['two']))
{
echo $variable;
}
?>
答案 0 :(得分:1)
如果$_POST['one']
不存在,则OR
条件将起作用
否则它将正常工作
if (isset($_POST['one']) || $variable=""){
}
答案 1 :(得分:0)
在顶部声明
$variable="";
if (isset($_POST['one']))
也许您可以根据业务逻辑使用!empty($_POST['one'])
答案 2 :(得分:0)
$variable ='';
if (isset($_POST['one']))
{
$variable="SOME STRING";
}
if (isset($_POST['two']))
{
echo $variable;
}
答案 3 :(得分:0)
您的代码将无法使用,因为您不能同时提交两个表格。因此,当$ _POST ['two']可用时,$ variable将永远没有值,因为未提交$ _POST ['one']。在“ if”块上方声明该变量只会帮助您克服通知,但代码将永远无法工作。
答案 4 :(得分:0)
POST值仅与以下请求一起发送。在此之后的下一个请求中,值将被忘记(如果有新数据,则将存储它们)。您可以用几种不同的方式存储它们,例如,一个会话-但如果您希望表单按顺序链接(这意味着您必须提交formOne
才能在formTwo
中获取值) ,您可以根据所发送的第一个表单使用该值向第二个表单添加隐藏的输入。
将您的PHP代码放在表单之前,然后在第二个表单内添加一个隐藏的输入,以在其中回显$variable
。提交第一个表格后,才可以使用“ SOME STRING”设置和定义此变量,否则为null
。
提交第二个表单时,它将仅继承该表单内的输入,包括隐藏字段(但不包括第一个表单中的任何数据)。
<?php
$variable = isset($_POST['one']) ? "SOME STRING" : null;
if (isset($_POST['two']) {
echo $_POST['old_one'];
}
?>
<form id="formOne" method="post">
<input type="submit" name="one" value="Confirm" />
</form>
<form id="formTwo" method="post">
<input type="hidden" name="old_one" value="<?php echo $variable; ?>" />
<input type="submit" name="two" value="Confirm" />
</form>
在method
元素上没有<input>
属性,仅在<form>
元素上。
答案 5 :(得分:0)
谢谢大家。现在正在工作。
我使用像@SaadSuri这样的Session变量。如果有人遇到类似问题,我会离开工作代码。
<?php
if (isset($_POST['one']))
{
$_SESSION['variable']="SOME STRING";
}
if (isset($_POST['two']))
{
echo $_SESSION['variable'];
}
?>
<form id="formOne" method="post">
<input method="post" type="submit" name="one" value="Confirm">
</form>
<form id="formTwo" method="post">
<input method="post" type="submit" name="two" value="Confirm">
</form>