2012-12-21 57 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