你好我在表单中发送id时遇到问题。
网站的结构是:
session_start();
if (!isset($_SESSION['a'])){
...create the session from some variables...
$_SESSION['a'] = $var;
$var = $_SESSION['a'];
}else{
$var = $_SESSION['a'];
if (isset($_POST["one"]) ){
echo "post one was send";
}
if (isset($_POST["two"]) ){
echo "post en was send";
}
echo "session already exists.";
}
它将发送的表单放在页面的末尾,并将被排除在php中嵌入到html中:
echo '...
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="one" name="one" value="one"/><div>set one</div>
</form>
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="two" name="two" value="two"><div>set two</div>
</form>
</ul>
...';
所以奇怪的是,表单似乎没有发送,因为代码的第一部分工作,因为它应该只做else部分在发送表单时不起作用。它只会在post-method的条件下显示echo文本。
所以,如果有人能够告诉我如何解决这个问题,我真的会感到满意。
非常感谢。
更新:
好的,使用不带动作的请求方法可以回显消息。我认为它会起作用。 现在的问题是,当我发送帖子时,会话应该已经改变了。情况并非如此,我不知道为什么这不起作用。
所以原始代码是这样的:
if (isset($_POST["tr"]) ){
$_SESSION['a'] = "tr";
echo "post tr was send and session has changed to tr";
}
答案 0 :(得分:2)
如果你有这样的表格
<form method="post">
<input type="submit" value="Submit Form" name="formA">
</form>
<form method="post">
<input type="submit" value="Submit Form" name="formB">
</form>
然后你可以像这样检查
if (isset($_REQUEST['formA']) ...
elseif (isset($_REQUEST['formB']) ...