-1

您好,我在以表格形式发送 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>
     ...';

所以奇怪的是,表单似乎没有被发送,因为代码的第一部分可以正常工作,只是发送表单时其他部分不起作用。它只会在 post-method 的条件下显示回显文本。

所以如果有人能告诉我如何解决这个问题,我真的会很感激。

多谢。

更新:

好的,使用不带操作的请求方法会回显消息。我认为它会工作。现在的问题是,当我发送帖子时,会话应该已更改。事实并非如此,我不知道为什么这不起作用。

所以原始代码是这样的:

if (isset($_POST["tr"]) ){
    $_SESSION['a'] = "tr";
    echo "post tr was send and session has changed to tr";
    }
4

1 回答 1

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']) ...
于 2012-12-21T16:10:48.563 回答