2014-10-09 83 views
-3

我有变量$ a和$ location。但是,当我按下“提交”按钮时,变量已超出范围。我可以通过输入框T2中的变量传入,但我无法设法将其转换为常数变量'a'。我添加echo $ b来调试它,我确实得到了验证条件语句是真实的输出。

<?php 
[...] 

$a = '5'; 
$location = 'home'; 

if(isset($_POST['submit'])) { 
    $location=$_POST['T2']; 
    echo $location; 
    echo $a; 
    $b = '6'; 
    echo $b; 
    [...] 
} 
?> 

<input type="text" name="T2" value="<?php echo $location; ?>"> 
<button type="submit" name="submit" value="create">Submit</button> 
+2

是'$了'甚至定义? – 2014-10-09 15:52:48

+0

你忘记使用隐藏字段吗?除非分配给隐藏字段,否则不能发布变量。 – boomoto 2014-10-09 15:53:19

+1

你希望这个片段做什么,它实际上做了什么?这并不完全清楚。 – 2014-10-09 15:53:20

回答

0

得到它在一个隐藏的输入

<input type="hidden" name="myvar" value="<?php echo $a; ?>"> 

呼应它的工作,然后使用$ _ POST将其解压

$a=$_POST['myvar']; 
1
$a="Testing"; 
echo $a; 

if(isset($_POST['submit'])) {   // you're not getting here 
    $location=$_POST['T2'];  
    echo $a; 
    echo "Testing one two three"; // even this won't show :) 
} 

只有一个似是而非的原因在于第二回声不工作,即你if条件犯规评估为true。没有其他原因可以导致这种情况。现在检查你的域或按钮命名形式:)

简单print_r($_POST);submit会告诉你,被张贴的所有,你可以检查是否有submit还张贴。

+0

好吧,不是真的,唯一可能的方式是,如果没有帖子提交 – DarkMukke 2014-10-09 15:57:36

+0

这是用不同的词语相同的陈述。 – 2014-10-09 15:58:20

+0

@DarkMukke是的,如果'isset($ _ POST ['submit'])'不返回TRUE,那么'$ a'永远不会尝试并被echo'd。 – 2014-10-09 15:58:20

1

尽我所知,你遗漏了表格标签以及应该是post的方法,至少从你发布的代码中找到。

旁注:如果你发布的不是完整的代码,那么。以下作品在提交时印上home56

我确信这就是预期的结果。

<?php 

$a = '5'; 
$location = 'home'; 

if(isset($_POST['submit'])) { 
    $location=$_POST['T2']; 
    echo $location; 
    echo $a; 
    $b = '6'; 
    echo $b; 

} 
?> 

<form action="" method = "post"> 
<input type="text" name="T2" value="<?php echo $location; ?>"> 
<input type="submit" name="submit" value="create"> 

</form> 

旁注:你可以把你现在的按钮,如果你想要的,而不是我测试的输入:

<button type="submit" name="submit" value="create">Submit</button> 

脚注:

两个[...] - 任何相关性?我敢打赌有。

+0

我已经有了以下内容:

stevo 2014-10-09 17:08:10

+0

@stevo我的回答有效。如果它仍然不适合你,那么你必须向我们展示完整的代码。除了Hanky或我无法知道''''或其他地方的内容外,没有别的东西可以做。 – 2014-10-09 17:09:38

+0

@stevo在打开'<?php'标签后立即在文件顶部添加错误报告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否产生任何东西,并且在变量上使用'var_dump();'。如果您有任何JS发生,请告诉我们。你真的需要在前面发布完整的代码,因为这是猜测工作,我不处理猜测,我处理实际情况。如果我事先知道,我不会提交我的答案。 – 2014-10-09 17:13:21