2016-04-11 36 views
0

Im新的Javascript和我無法解決這個問題。我有一個複選框表單,所以我需要獲取選定的值併發布到一個php文件中。獲取php選中複選框值在JAVASCRIPT

下面是腳本:

<script> 
       $("#addusers").click(function(){ 

        var checkedValue = null; 
        var inputElements = document.getElementsByClassName('values'); 
        for(var i=0; inputElements[i]; ++i){ 
         if(inputElements[i].checked){ 
          checkedValue = inputElements[i].value; 
          break; 
         } 
        } 

        $.post("users_add.php", { 
         checkedValue:checkedValue 

        }, function(data) { 
         alert(data); 
        }); 
       }); 
      </script> 

這裏是PHP代碼:

<td> 
           <div> 
            <?php 
            foreach($userProfiles as $u) 
            { 
             foreach($u as $x) 
             { 
              echo "<input type=\"checkbox\" name=\"values\"> $x"; 
              echo "<br>"; 
             } 
            } 
            ?> 

           </div> 
          </td> 

林檢查的print_r($ _ POST)後的變量,但它不是顯示任何。 我的javascript好嗎?

回答

0

不用擔心JavaScript的新手問題,我們都會開始一段時間。關於你的代碼,首先你的「for循環」是保存第一個值然後跳過,我知道你還沒有收到任何東西,但我猜你只會得到一個值。沒有發佈任何內容的最合理的原因是您沒有使用正確的選擇器。例如:
var inputElements = document.getElementsByClassName('values');
將檢索看起來像這樣所有的HTML元素:
<input type="text" class="values" />
哦,對不起,我剛纔注意到你沒有張貼您的HTML代碼,因爲你已經在使用jQuery也沒有必要將其與香草混合JavaScript的,這裏是我發現你的代碼更正:

  var checkedValues = []; 
      var inputElements = $('input[type="checkbox"]'); 
      inputElements.each(function() { 
       if($(this).is(':checked')){ 
        checkedValues.push($(this).val()); 
       } 
      });     

說明:
var checkedValues = [];
這樣,我們在JavaScript聲明一個數組等等我們可以訪問數組方法「push」來插入滿足條件的元素(複選框被選中)。

var inputElements = $('input[type="checkbox"]'); 這是DOM的元素的jQuery的選擇,我們是在說「取得具有類型=複選框的屬性的所有輸入元素您可以瞭解更多有關jQuery選擇在其官方公報網站:https://api.jquery.com/category/selectors/

inputElements.each(function() { 
    if($(this).is(':checked')){ 
     checkedValues.push($(this).val()); 
    } 
}); 

該位做了幾件事情
inputElements.each(function(){});
這將「爲每個」在inputElements選擇元件執行功能,您可以在官方文檔獲取有關jQuery.each更多信息:https://api.jquery.com/each/

if($(this).is(':checked'))
如果詢問循環中的當前元素是否具有「checked」屬性集。我們使用$(this)將我們從原始選擇中獲得的純DOM元素轉換爲使用「is」方法的jQuery對象。

checkedValues.push($(this).val());
在這裏,我們添加具有檢查屬性集,而不是元素,而不是布爾,但無論設置在輸入的「值」屬性的元素的值。

任何它不清楚或不工作,隨意問,快樂的編碼! :)