Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在isset中定义变量_Php_Html - Fatal编程技术网

Php 在isset中定义变量

Php 在isset中定义变量,php,html,Php,Html,我的代码有问题。我尝试在发送一个表单后定义变量,并在发送另一个表单后使用它。当我这样做时,我得到了“注意:未定义变量:变量…”我打赌这很容易修复,但我只是一个初学者 <form id="formOne" method="post"> <input method="post" type="submit" name="one" value="Confirm"> </form> <form id="formTwo" method="post"> <

我的代码有问题。我尝试在发送一个表单后定义变量,并在发送另一个表单后使用它。当我这样做时,我得到了“注意:未定义变量:变量…”我打赌这很容易修复,但我只是一个初学者

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

?>

在顶部声明

$variable="";
if (isset($_POST['one']))

也许你可以使用
!空($\u POST['one'])
基于您的业务逻辑

如果
$\u POST['one']
不来,则
条件将起作用
  $variable ='';

if (isset($_POST['one']))
    {

        $variable="SOME STRING";
    }


    if (isset($_POST['two']))
    {

        echo $variable; 
    }
否则它将正常工作

if (isset($_POST['one']) || $variable=""){

}

您的代码将无法工作,因为您不能同时提交两个表单。因此,当$\u POST['two']可用时,$变量将永远不会有值,因为$\u POST['one']未提交。在“if”块上方声明变量只会帮助您通过通知,但代码永远不会工作。

POST值仅随以下请求一起发送。之后的下一个请求会忘记这些值(如果有新数据,则会存储它们)。您可以通过几种不同的方式存储它们,例如会话-但是如果您希望表单按顺序链接(这意味着您必须先提交
formOne
,然后才能在
formTwo
中获取值),您可以使用取决于发送的第一个表单的值向第二个表单添加隐藏输入

将PHP代码放在表单之前,然后在第二个表单中添加一个隐藏的输入,在其中回显
$variable
。此变量仅在提交第一个表单后使用“SOME STRING”进行设置和定义,否则为
null

当第二个表单提交时,它将只在该表单中进行输入,包括隐藏字段(但不包括第一个表单中的任何数据)


谢谢大家。它正在工作

我使用Session变量,如@SaadSuri所说。如果有人有类似的问题,我会留下工作代码

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


Http是一种无状态协议。新表单请求意味着您正在启动请求周期。您可以通过首先定义空变量来消除注意,但不会得到值。因此,请使用一个
会话变量
,该变量将可用于您的下一个请求在顶部声明$variable='',在第二个'if'中打印$variable,该变量仅在第一个'if'被执行时定义
很高兴它对您有效。您的意思是这样的吗?
<?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>