2013-01-03 102 views
0

如何通過單擊鏈接$ _POST信息從一個頁面到另一個頁面?沒有表單或提交框,就在最終用戶點擊鏈接時,它會在打開的鏈接中發佈相關信息。帶onclick的帖子變量?

僞代碼,但是:

//On first page 
<a href="./page.php" onclick="post" value="var">Click me!</a> 
... 
//On the page the above links to 
$variable = $_POST["var"]; 

的東西,我認爲是下面的,這雖然低於漂亮,工作。我喜歡它,所以它是一個帖子,而不是一個get。

//On first page 
<a href="./page.php?var=<?php echo $variable; ?>">Click me!</a> 
... 
//On second page 
$variable = $_GET["var"]; 
+0

你可以使用ajax –

+0

我從未使用過AJAX。 – gator

+2

我們可以使用jquery(它比js更容易,特別是對於這個) – Popnoodles

回答

11

試試這個:

<a href="link.php" class="post">submit content using link</a> 

<script type="text/javascript"> 
      jQuery(document).ready(function($){ 
       $(".post").on("click",function(){ 
        $.ajax({ 
         url: "http://www.yourwebsite.com/page.php", 
         type: "POST", 
         data: { name: "John", location: "Boston" }, 
         success: function(response){ 
           //do action 
         }, 
         error: function(){ 
           // do action 
         } 
        }); 
       }); 
      }); 
     </script> 

Reference Link

4

不知道爲什麼你不這樣做:

//在第一頁

<a href="./page.php?var=value">Click me!</a> 

... //在頁面上面的鏈接

$variable = $_GET['var']; 

更新:

根據您的上述評論:

GET顯示的URL信息,而使用POST它 沒有。我不希望最終用戶只用他們希望的任何 值來編輯URL。 @popnoodles,當用戶點擊超鏈接時,它會指向一個新的頁面。 - riista

您正在嘗試爲安全做到這一點原因,例如既不方法是使用GET做到這一點的好辦法或AJAX是不安全的可以篡改。您需要重新考慮您要保護的內容以及如何檢查提交的數據是否有效。

+1

OP不希望'$ _GET' –

+1

「**使用onclick發佈**變量?」 「我怎麼能通過點擊一個鏈接** $ _ POST POST信息從一頁到另一頁?」 – Popnoodles

+0

@BhuvanRikka等等呢? –

1

添加一個點擊事件監聽器並將請求發送到另一個頁面。

3

要和GET之間選擇POST簡單

  • POST應該用於修改服務器的狀態。
  • 所有其它情況下也適用於GET

所以,你必須使用得到你的情況下,無法發佈。
安全問題在這裏無關緊要。

0

你也可以

$.get('./page.php?param=true&data=1', function(data){$('#content').append(data);}); 
+0

請添加說明。 – jmattheis

+0

你可以發佈這樣的數據。 (param = true&data = 1) page.php將在#content div中加載 – caras

1

你需要換你的 「選擇」 的形式,並使用像一個按鈕所以..

<style type="text/css"> 
/* just styling the overall menu */ 
#my-post-link ul{ 
    list-style-type:none; 
    text-align:center; 
    background-color:cadetblue; 
    font-size:1.1em; 
    font-weight:600; 
    padding:0.45em; 
    line-height: 1.75em; 
} 
/* following line would allow you to create a horizontal menu */ 
#my-post-link ul li{display:inline;white-space:nowrap;} 
#my-post-link button { 
    background-color: transparent; /* <-- removes the gray button */ 
    border: none; /* <-- removes the border around the button */ 
    color: white; 
    font-size: 1.15em; 
    font-weight: 600; 
} 
#my-post-link button:hover { 
    background-color: white; 
    color: cadetblue; 
    cursor: pointer; /* <-- makes the button text act like a link on hover */ 
} 
</style> 
<form id="myForm" name="myForm" method="post"> 
    <div id="my-post-link"><ul> 
    <li><button name="select-me" type="submit" value="var" onclick=\"myForm.action='./page.php';return true;\">Click me!</li> 
    </ul></div> 
</form> 

這將發佈值「VAR」與按鍵「選擇我」,所以,你會讀與該變量...

$variable = $_POST["select-me"]; 

你也可以進一步風格按鈕page.php文件(s)與僞類,使他們的行爲更像是一個普通的文本鏈接,但我認爲你明白了。

如果你想看到什麼變量回發到你的頁面,你可以在某處放下這段代碼:

foreach ($_POST as $key => $value) { 
    $i++; 
    ${$key} = $value; 
    echo "<!-- //[{$i}] {$key}:{$value} -->\n"; 
} 

你也可以用var_dump($ _ POST)查看發佈的數據