2012-12-21 56 views
-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> 
    ...'; 

所以奇怪的是,表单似乎并没有被发送,因为代码的第一部分工作,因为它应该做的只是else部分在发送表单时不起作用。它只会显示后方法条件下的回显文本。

所以如果有人可以告诉我如何解决这个问题,我真的会赞赏。

非常感谢。

UPDATE:

没关系,使用请求方法,无需操作使得回声出消息。我认为它会起作用。 现在的问题是,当我发送帖子时,会话应该已经改变。情况并非如此,我不知道为什么这不起作用。

所以原来的代码是这样的:

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

如果你不这样做有一个'$ _SESSION ['a']'值,你永远不会在else语句中看到'echo' – Stu

+0

html元素ID是**从不**发送提交表单。只有'name'和'value'属性。 –

+0

如果表单在发送页面时回传到相同的URL,则不需要执行“操作”。 – Joe

回答

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']) ... 
+0

with'action =/a'试图将变量放到另一个页面,其中OP希望将其包含在1页 – 2012-12-21 16:13:27

+0

@ user1902584中,action属性就是其中的例子。他们已被删除,因为他们并不真正相关。 –

+0

你好,谢谢你回答这个问题。这不起作用。 – bonny