2015-02-11 71 views
0

I'd like to send a post value depending on what link was pressed. Is it possible to do this without a button?是否有可能「POST」通過一個鏈接(<a href>)

This is what i got (not working =)

HTML

<a href="time.html.php" id="select_month" name="select_month" value="01" action="post">Jan</a> 

PHP

$selected_month = $_POST['select_month']; 
+2

簡短的回答:AJAX – 2015-02-11 13:12:43

+5

@Hudixt:龍答:異步JavaScript和XML? – 2015-02-11 13:13:26

+0

我以爲是這樣,但是我對html很氣憤。帶有AJAX的jquery是我的第二個chooise – d00rman 2015-02-11 13:14:03

回答

1

POST, by definition, can only happen through an HTML <form> tag. An anchor <a> tag is, also by definition, a GET operation only. Javascript is also capable of POST via AJAX (I would highly suggest a framework like 及其post function

<script> 
    function postExample() { 
     $.post('/your/url/here', {"postfield1":"val1"}, function(resp) { 
      //Do something with the AJAX response 
     }); 
    } 
</script> 
<a href="#" onclick="postExample(); return false;">Your Link here</a> 

這樣做是我們或多或少劫持​​錨標記使用它作爲一個載體來捕獲點擊事件。 #是我們的href佔位符,因爲它實際上不會將瀏覽器發送到新的URL。當點擊被執行時,我們的JS函數被調用,然後我們return false;阻止錨點成功(即將瀏覽器發送到另一個頁面)。如果錨點包含真正的URL並且成功,則不能保證異步POST將會觸發。

+0

Perfect answear。但下面是一個使用GET選項的非常短的代碼。爲什麼這不夠好? – d00rman 2015-02-11 13:39:57

+0

如果你只使用簡單的值和錨點,那麼是'$ _GET'是首選的答案,因爲這是''自然工作的方式。但是您的標題聲明您希望避免這種情況,並且只使用帶錨標記的POST – Machavity 2015-02-11 13:44:14

+0

謝謝。我不是一個很好的程序員。該函數僅用於過濾值列表。所以我想這次GET可以爲我工作得夠好。但是,我會給你的answear「正確」的地位,我的POST問題。 – d00rman 2015-02-11 13:50:37

-1

USE $_GET,

<a href="time.html.php?month=01">Jan</a> 

then use php:

$_GET['month']; 
+0

這個選項很好,因爲代碼很小!爲什麼它被拒絕投票? – d00rman 2015-02-11 13:34:44

+0

@ d00rman也許是因爲那實際上不是你要求的?看看你的問題的標題(不,這不是我downvote) – Machavity 2015-02-11 13:39:54

+1

@Machavity好的,謝謝。當然,我要求一個POST功能。但我真的可以使用GET,如果沒有人告訴我不同​​。 Creativy就像直截了當的回答一樣受歡迎。 – d00rman 2015-02-11 13:43:26

0

使用jQuery的$.post

<a onclick="$.post('example.php', {'key':'value'});return false;" href="#">link<a/> 
相關問題