<? echo "<form name='form' action='page.php' method='post'>
<input type='hidden' name='slot' value=".$i.">
</form>";
?>
$ i是while循环中的索引(我几次回显这个简单的形式)。表单本身提交了一点javascript。
此时一切都很好,表单已正确提交并带我到另一个页面,我需要使用该“slot”值来做其他垃圾。但是,当我尝试这样做时:
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=".$_POST['slot'].">
//SOME OTHER HIDDEN VARS
</form>";
?>
或者这......
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=";
echo $_POST['slot'];
echo ">
//SOME OTHER HIDDEN VARS
</form>";
?>
或者这......
<? //TOP OF PAGE
$slots = $_POST['slot'];
?>
<? //FURTHER DOWN
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=".$slots.">
//SOME OTHER HIDDEN VARS
</form>";
?>
...所有我得到的是一个未定义的索引:插槽等..等...错误,php文件的源只有空格。有趣的是,如果我只是这样做:
echo $_POST['slot'];
在页面顶部,它打印出上一页中的值就好了,但是,如果我查看源,它仍然显示未定义的索引错误而不是值。我知道值正在传递,因为它打印,但我不能将它用于其他任何东西,因为如果我尝试将它包含在我的PHP代码中,它只显示一个错误并给出一个空值!
我也尝试过使用$ HTTP_POST_VARS ['slots']并得到相同的结果......经过几个小时的实验后,我的智慧结束了......有什么建议吗?
答案 0 :(得分:1)
检查空虚:
if(empty($_POST['foo'])) {
$foo = "default foo";
} else {
$foo = $_POST['foo'];
}
print "My foo is '$foo'";
答案 1 :(得分:0)
除了一些语法问题,我看不出有什么问题...好吧首先,你可以发布你的javascript,这样我就可以看到。
现在尝试使用以下代码代替您正在使用的内容:
?> <form name="another_form" action="another_page.php" method="post">
<input type="hidden" name="slot_num" value="<?php echo isset($_REQUEST['slot'])?$_REQUEST['slot']:'not found'; ?>">
</form>
<?
我不完全确定出了什么问题,但我认为问题出在您发布的代码中。它可能坐在其他地方,所以继续通过代码发送。
答案 2 :(得分:0)
修改强>
根据您的评论和发布的代码,当您应该回显$_POST['slot']
时,您似乎正在尝试回复$_POST['slots']
... 请注意最后的s
< /强>
由于$_POST
是一个超级全局,因此它可以在您网页的任何位置使用,因此您的代码应该有效。
我注意到您在帖子中混合了slot
和slots
作为索引(您在最后一个示例中写了$HTTP_POST_VARS['slots']
而在其他地方写了$_POST['slot']
)。这可能是原因吗?
要检查$_POST
的外观,请尝试将打印隐藏值的位置设置为正确(尽管它应该在页面的任何位置都相同):
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
另外,你的插槽没有用它周围的引号回显,所以它应该是:
<?php echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value='".$_POST['slots']."'>
//SOME OTHER HIDDEN VARS
</form>";
?>
答案 3 :(得分:0)
尝试替换......
<? //TOP OF PAGE
$slots = $_POST['slot'];
?>
与..
<?php //TOP OF PAGE
isset($_POST['slot']) : $slots = $_POST['slot'] ? $slots = '';
?>
祝你好运,希望有所帮助!