2012-04-18 76 views
0

我正在将隐藏变量从HTML传递到PHP页面。在PHP页面中,我想在表单中使用该变量。

<?php    
    $newVar=trim($_POST['newVar']); 
    $subject = "new var is ---> $newVar"; 
?> 

我不能够在任何if语句中使用$newVar - 它显示为空白。如果我尝试回显$subject,它会显示$newVar的值,但是当我试图在任何if语句中回显$subject的值时,它不会显示$newVar的值。

我的代码是: HTML标记是:

<a href="#" class="applyNow" onclick="document.sendVar.newVar.value='myVar'; document.sendVar.submit(); return false">New Variable</a> 

<form method="post" name="sendVar" action="test.php" style="display:none;"> 
    <input type="hidden" name="newVar" value=""> 
    <input type="submit" value="Send form!"> 
</form> 

PHP:

<?php    
    $newVar=trim($_POST['newVar']); 
    $subject = "new var is ---> $newVar"; 
?> 


if(isset($_POST['submit'])) { 
    if(!isset($hasError)) { 
     $from_add = "[email protected]";   
     $emailTo = '[email protected]';     
     $headers = "From: $from_add \r\n"; 
     $headers .= "Reply-To: $from_add \r\n"; 
     $headers .= "Return-Path: $from_add\r\n"; 
     $headers .= "X-Mailer: PHP \r\n"; 

     mail($emailTo, $subject, $headers); 
// HERE in $subject.. value of newVar is not displaying 


     $emailSent = true; 
    } 

    $from_add = "[email protected]";  
    $headers = "From: $from_add \r\n"; 
    $headers .= "Reply-To: $from_add \r\n"; 
    $headers .= "Return-Path: $from_add\r\n"; 
    $headers .= "X-Mailer: PHP \r\n"; 
} 
?> 
+0

隐藏或禁用? – matino 2012-04-18 12:30:25

+6

给我们一个你的if语句的例子 – Bono 2012-04-18 12:30:31

+3

如果你使用的语句是什么?如果您可以发布您正在使用的实际代码,然后我们可以看到您正在尝试执行的操作,那么调试会更容易。此外,也可以从表单页面发布隐藏输入的html标记。 – martincarlin87 2012-04-18 12:30:36

回答

3

你似乎已经结束了PHP代码段与?>并没有开始一个新的与<?php - 虽然我认为这只是一个复制/粘贴错误,因为您并不是抱怨可以在浏览器中看到您的PHP源代码。

你在这里的实际问题是,如果$_POST['submit']设为您正在检查,但它永远会因为你没有指定任何表单控件submit的,所以没有代码在if块将永远是执行。

在你的HTML,变化:

<input type="submit" value="Send form!"> 

...到:

<input type="submit" name="submit" value="Send form!"> 

...,它应该工作。

+0

感谢您的回复..我有一个在PHP文件中的表单,代码是巨大的,所以无法粘贴在这里的代码..所以它检查$ _POST ['提交']的形式。如果我试着在声明$ subject之后立即回显$ subject,它确实会显示我的post变量的值。但是,在以下if语句中使用时,它也会消失..希望我很清楚.. – 2012-04-18 13:04:36

+0

要么因为未满足条件而没有进入if语句块,要么已在代码的更上方重新分配了'$ newVar' 。检查缺少等号的比较,例如检查你没有'if($ newVar = 1)'它应该在哪里'if($ newVar == 1)' – DaveRandom 2012-04-18 13:09:53

+0

我在if块中输入,因为我可以看到除$ newVar之外的其他文本..此外,而不是$ _POST变量,我试图给显式不同的值..意义,而不是$ newVar = trim($ _ POST ['newVar']);我试图使用$ newVar =“test”; 。在这种情况下,它显示了$主题中的$ newVar值。所以我认为这个问题是只有后期变量.. – 2012-04-18 13:18:15