2012-03-17 54 views
-1

如何根據groupwall方法將textarea的值傳遞到新頁面?
在這裏,我只是重定向頁面。我想根據他們的學期進行狀態更新。
這是我的代碼。給我一些代碼示例或建議如果這不是正確的方法來做到這一點。使用javascript將值從一頁傳遞到另一頁

<form action="" method="get"> 
    <textarea name="status" id="wall" cols="50" rows="2">     
    </textarea> 

    <input name="submit" type="submit" value="share" onclick="groupwall();"/> 
</form> 

<script type="text/javascript"> 
    function groupwall(){ 
     var semster=document.getElementById('txtsamp').value; 
     if(semster == "4-1"){ 
      window.location ='4-1hpage.php'; 
      //header("location: member-index.php"); 
     } 
     else if(semster =="3-1"){ 
      window.location ='3-1hpage.php'; 
     } 
     else if(semster == "2-1"){ 
      window.location ='2-1hpage.php'; 
     } 
     else { 
      window.location ='1-1hpage.php'; 
     } 
    } 
</script> 

回答

1

你可能會更好地發佈textarea文章nt到你的服務器並存儲在某個地方,甚至在會話中。我這樣說的原因是,雖然你可以通過window.location作爲GET參數傳遞它,但textarea內容可以是任意長的,並且可能太長而不能作爲GET參數傳遞。您可能會考慮將AJAX請求發佈到內容的textarea,可能會執行驗證,然後重定向到應用程序的下一頁。

+0

所以我應該使用數據庫來存儲textarea的內容? – Taskin 2012-03-17 13:53:54

+0

不,你可以簡單地將它存儲在'$ _SESSION'中,如果它需要暫時保存在應用程序的另一部分 – dldnh 2012-03-17 13:54:53

0

只要給您的形式的ID -
<form id="share-form" ...

設置形式的行動,而不是重定向

var share_form = document.getElementById('share-form'); 
share_form.action = '....'; 

的提交表單
share_form.submit();

0

如果數據量不大,將某種變量傳遞給新頁面的最簡單方法是將其放入URL中的查詢字符串中,然後讓新頁面將其解析出來,並對其執行操作。查詢字符串是遵循一個問號像這樣的URL的一部分:

4-1hpage.php?data=whatever 

的查詢字符串值,不影響其頁面調用您的服務器上,但可以通過服務器或客戶端使用觸發該頁面中的不同行爲。

在您的特定問題的細節中,似乎並不需要將任何數據傳遞到下一頁,因爲您已根據textarea的結果調用了不同的頁面,但您可以通過像這樣的值,如果你需要:

function groupwall() { 
    var semster=document.getElementById('txtsamp').value; 
    var url; 
    if(semster == "4-1") { 
     url ='4-1hpage.php'; 
    } else if(semster =="3-1") { 
     url ='3-1hpage.php'; 
    } else if(semster == "2-1") { 
     url ='2-1hpage.php'; 
    } else { 
     url ='1-1hpage.php'; 
    } 
    // encode the data for URL safety and make sure it isn't too long 
    window.location = url + "?semster=" + encodeURIComponent(semster.slice(0, 128)); 
} 

如果textarea的可以任意長,它需要能夠接受很長的值,那麼你會想將它發佈到您的服務器,並讓服務器決定在哪裏r在表單發佈後更改用戶。當生成新頁面時,服務器可以根據表單文章中的值填充任何需要的內容。

數據可以臨時存儲的其他地方,以便將來的頁面可以訪問它們是Cookie和HTML5本地存儲。 Cookie的大小受到一定限制,將大量數據放入Cookie中效率不高。所有瀏覽器都不支持HTML5本地存儲,因此您通常需要備用策略作爲後備。

+0

textarea內容可能很長並且不適合查詢字符串參數,你不覺得? – dldnh 2012-03-17 13:42:56

+0

@dldnh - 它可能是,但似乎並沒有在這種情況下。這取決於應用程序。如果它不是太大,這是將其傳遞到新頁面的最簡單方法之一。 – jfriend00 2012-03-17 13:48:38

+0

如何獲取下一頁中的數據? – Subho 2014-10-30 07:49:06

0
1) do a form post to another PHP page and 
    a) Store it in a database (If you will really use this in future also) 
      OR 
    b) Store it in Session Variable 
      OR 
2) do an ajax post to a server page and 
      OR 
    a) Store it in a database 
      OR 
    b) Store it in Session Variable 

然後從任何PHP頁面您可以訪問這些值。

0
  1. 通過查詢字符串yoururl.com?variable=value
  2. 發送作爲參數,通過$_SESSION環境變量
  3. 使用一個Cookie(如果開啓)
  4. AJAX - 離開頁面之前在數據庫或文本文件存儲和檢索當進入新的頁面
相關問題