javascript
  • html
  • paypal
  • 2012-11-28 27 views 0 likes 
    0

    我試圖找出一個paypal問題。設置具有相同ID的多個表單元素的值,Paypal

    我在頁面上有多個「立即購買」按鈕,我需要爲所有按鈕設置一個值。

    「立即購買」按鈕元素都具有相同的ID。

    每個'立即購買'按鈕代表一個許可範圍,因此有'1-5','6-10','11 -20等。我有一個版本列表,它們被放在頁面中遵循一個循環:

    $strWeights1 .= "<span id='1".$row['Tag']."' onclick='select_weight(this.id)' class='linkoff'>". $row['Tag'] . "</span> | "; 
    

    我可能是在想這一點,但什麼是設置在所有的「立即購買」按鈕,選擇「版本」的最佳方式?

    我想使用PayPal的變量「ITEM_NUMBER」

    乾杯

    就像我已經說過的按鈕是來自PayPal,我無法控制領域存在的命名,所以這個問題我對了。

    好吧,所以選擇權重功能只是使跨度像href標籤一樣工作,打開和關閉'按鈕'。

    function select_weight(value){ 
    
         value = value.substr(1); 
    
         document.forms["fontweight"]["fw"].value = value; 
         //this.forms["item_number"].value = value; 
    
         thin = document.getElementById('1Thin'); 
         if(thin != null){ 
          thin.className = "linkoff"; 
          thin = document.getElementById('2Thin'); 
          thin.className = "linkoff"; 
         } 
         light = document.getElementById('1Light'); 
         if(light != null){ 
          light.className = "linkoff"; 
          light = document.getElementById('2Light'); 
          light.className = "linkoff"; 
         } 
         book = document.getElementById('1Book'); 
         if(book != null){ 
          book.className = "linkoff"; 
          book = document.getElementById('2Book'); 
          book.className = "linkoff"; 
         } 
         medium = document.getElementById('1Medium'); 
         if(medium != null){ 
          medium.className = "linkoff"; 
          medium = document.getElementById('2Medium'); 
          medium.className = "linkoff"; 
         } 
         bold = document.getElementById('1Bold'); 
         if(bold != null){ 
          bold.className = "linkoff"; 
          bold = document.getElementById('2Bold'); 
          bold.className = "linkoff"; 
         } 
         heavy = document.getElementById('1Heavy'); 
         if(heavy != null){ 
          heavy.className = "linkoff"; 
          heavy = document.getElementById('2Heavy'); 
          heavy.className = "linkoff"; 
         } 
         black = document.getElementById('1Black');   
         if(black != null){ 
          black.className = "linkoff"; 
          black = document.getElementById('1Black'); 
          black.className = "linkoff"; 
         } 
    
         //alert(value); 
         fontweight1 = document.getElementById('1'+value); 
         fontweight2 = document.getElementById('2'+value); 
         fontweight1.className = "linkon"; 
         fontweight2.className = "linkon";} 
    

    這是按鈕的代碼,它是在頁面約16次,「ITEM_NAME」和「hosted_button_id」改變每次:

    <form target=\"paypal\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" onsubmit=\"return validateForm()\" > 
          <input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\"> 
          <input type=\"hidden\" name=\"hosted_button_id\" value=\"xxxxxxxx\"> 
          <input type=\"hidden\" name=\"item_name\" value=\"".$strProdName." : 1-5 terminals \"> 
          <input type=\"hidden\" name=\"item_number\" value=\" [set this value] \"> 
          <input type=\"image\" onMouseOver=\"this.src='images/paypalon.png';\" onMouseOut=\"this.src='images/paypaloff.png';\" src=\"images/paypaloff.png\" border=\"0\" name=\"submit\" alt=\"PayPal — The safer, easier way to pay online.\"> 
          <input type='hidden' name='notify_url' value='http://ipn.php'> 
         </form> 
    

    我一直在思考如何整理出來。我可以使用表單驗證功能來訪問特定的表單並設置該值嗎?我一直在試圖取得任何成功。

    function validateForm(form) 
    { 
        var x=document.forms["fontweight"]["fw"].value; 
    
        if (x==null || x=="") 
        { 
         alert("Hold on a moment, you need to select a weight before hitting the ‘Buy’ button."); 
         return false; 
        } 
        else{ 
    
         field = document.form; 
         //this.form['item_number'].value = x; 
         alert(field['item_name'].value); 
         return false; 
        } 
    } 
    

    形式標記有此調用它

    onsubmit="return validateForm(this.form)" 
    

    我在正確的軌道上>或者我應該拋棄它?

    +2

    不能有多個元素具有相同的編號 – Bergi

    +0

    所有元素都必須具有不同的ID,對許多元素使用相同的ID是錯誤的,您可以對許多元素使用類但不使用ID。 – Epsil0neR

    +0

    請向我們展示更多代碼,尤其是按鈕和'select_weight'函數。生成一些'span'標記的代碼沒有多大幫助 – Bergi

    回答

    0

    好吧,看起來我已經整理出來了。我已經使用'onClick'將驗證移至了按鈕。我傳遞(this.form)並使用它來到元素。

    雖然我明白同名的多個ID是錯誤的,但PayPal按鈕的名稱與我的代碼相同。

    相關問題