簡體   English   中英

在JAVASCRIPT中獲取php選中的復選框值

[英]Get php selected checkbox values in JAVASCRIPT

我是Java語言的新手,我無法解決這個問題。 我有一個復選框表格,所以我需要獲取選擇的值並發布到php文件。

這是腳本:

<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可以嗎?

不用擔心成為javascript新手,我們都從某個時候開始。 關於您的代碼,首先,您的“ for cycle”是保存第一個值,然后跳過,我知道您還沒有收到任何東西,但是我猜您只會得到一個值。 沒有發布任何東西的最合理原因是您沒有使用正確的選擇器。 例如:
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中聲明了一個Array,因此我們可以訪問數組方法“ push”,以在滿足條件的情況下插入元素(選中的復選框)。

var inputElements = $('input[type="checkbox"]'); 這是對DOM元素的jQuery選擇,我們說“獲取具有type = checkbox屬性的所有輸入元素。您可以在其官方站點https://api.jquery上了解有關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'))
這是否詢問循環中的當前元素是否設置了“已檢查”屬性。 我們使用$(this)將從原始選擇中獲得的純DOM元素轉換為jQuery對象,以使用“ is”方法。

checkedValues.push($(this).val());
在這里,我們添加已設置檢查屬性的元素的VALUE,而不是元素,不是布爾值,而是在輸入的“ value”屬性中設置的任何值。

任何不清楚或無法正常工作的問題都可以隨時詢問,並祝您編程愉快! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM