2016-03-12 29 views
3

我想爲不同的HTML <button>元素編寫不同的PHP代碼,但顯然它適用於頁面上的所有按鈕。這是我的一個按鈕:爲不同的HTML按鈕編寫不同的PHP代碼(AJAX)

<button name="plus" id="plus" type="button" onclick="plus()">+</button> 

這是我試圖讓功能,它適用於網頁上的所有按鈕:

$(document).ready(function() { 
    $("button").click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'plus.php', 
      success: function(data) { 
       // 
      } 
     }); 
    }); 
}); 

的問題:

  1. 怎麼辦我爲特定按鈕編寫函數?

  2. 爲什麼我必須寫type =「button」才能工作?

  3. 我在哪裏編寫AJAX函數?在<head></head>或身體的任何地方?

+0

如果你想要一個函數寫一個特定的按鈕,您可以在JS使用選擇的ID這樣的$(使用屬性附加傷害ID的再'#ID')點擊(函數(){........})。事實上,你可以直接把函數放在html中:然後在你js中你必須聲明函數:function plus(){。 ..do東西.....}我認爲您的js代碼的最佳做法是創建一個jsfunctions.js文件幷包含一個標記

回答

3

1)如何爲特定按鈕編寫函數?

您可以通過在button元素上放置特定的id或類來做到這一點,以便您可以一次選擇一個或多個元素組。例如$('#plus')只會定位HTML樣本中的id="plus"元素。

2)爲什麼我必須寫type =「button」才能工作?

這是因爲按鈕的默認typesubmit。因此,如果該按鈕位於form中,它將在您的JS有時間完成之前提交表單。

3)我在哪裏編寫AJAX函數?在頭部還是身體的任何地方?

兩者都很好,但如果你把它放在<head>,請確保你的代碼放在document.ready處理程序中。

最後,我建議您刪除HTML中的onclick="plus()"屬性。你似乎沒有使用它,即使你是通過JS附加事件被認爲比使用古老事件屬性更好的做法。

1

相信這將適用於所有的按鈕,因爲你選擇的所有按鈕 在jQuery中,當你選擇一個特定的元素,你必須使用一個ID,並選擇你的情況的ID,你可以做

$(document).ready(function(){ 
    $("#plus").click(function(){ 

     $.ajax({ 
      type: 'POST', 
      url: 'plus.php', 
      success: function(data) { 
       // 

      } 
     }); }); }); 

它將現在工作

1

首先,你已經指定了一個方法,當按鈕被點擊時,屬性onclick這樣做,所以當有人點擊該按鈕時,函數加被調用。

如果你想這樣做與jQuery使用click(function(event){...});

接下來,

爲什麼我寫類型=「按鈕」爲他們的工作?

將不會有任何傷害,如果你當你想使用<button>...</button>,提交表單不使用type="button",它被使用,type的默認值是唯一button

我在哪裏編寫AJAX功能?在<head></head>或身體的任何地方?

您需要在腳本中編寫ajax部分,您可以將<script></script>放置在您的身體或頭部,任意位置。

所以AJAX的事情會是什麼樣子,

<script> 
    $.ajax({ 
    .... 
    }); 
</script> 
相關問題