Определить порядок, в котором отмечены флажки - PullRequest
2 голосов
/ 02 октября 2010

Я пытаюсь создать страницу, которая позволяет пользователям выбирать 8 флажков из общего числа 25.

Мне интересно, , как определить точный порядок, в котором они их проверяют .Я использую обычную html-страницу, которая будет проверена действием формы, указывающим на страницу php.

Я пытаюсь получить такой результат (checkbox1, checkbox2, checkbox6, checkbox3, checkbox7 и т. Д.) Для восьмифлажки и точный порядок, в котором они были нажаты.

Я думаю, что нашел то, что искал, я не слишком уверен, но у меня возникли проблемы с его реализацией.

Вот чтоДо сих пор, я думаю, мой вопрос, какой тип php мне нужно собрать эту информацию, как только пользователь отправил форму.

Для формы, которую я имею:

<form id="form1" name="form1" method="post" action="check_combination.php">
    <label id="lblA1"></label> 
    <input name="checkbox1" type="checkbox" value="a1" onclick="setChecks(this)"/> Option 1 
    <label id="lblA2"></label> 
    <input name="checkbox1" type="checkbox" value="a2" onclick="setChecks(this)"/> Option 2 
    <label id="lblA3"></label> 
    <input name="checkbox1" type="checkbox" value="a3" onclick="setChecks(this)"/> Option 3 
    <label id="lblA4"></label> 
    <input name="checkbox1" type="checkbox" value="a4" onclick="setChecks(this)"/> Option 4
</form>

Для Javascript у меня есть:

<script type="text/javascript">
<!--
//initial checkCount of zero
var checkCount=0

//maximum number of allowed checked boxes
var maxChecks=8

function setChecks(obj){
//increment/decrement checkCount
if(obj.checked){
checkCount=checkCount+1
}else{
checkCount=checkCount-1
}
//if they checked a 4th box, uncheck the box, then decrement checkcount and pop alert
if (checkCount>maxChecks){
obj.checked=false
checkCount=checkCount-1
alert('you may only choose up to '+maxChecks+' options')
}
}
//-->
</script>

<script type="text/javascript">
<!--
$(document).ready(function () { 
    var array = []; 
    $('input[name="checkbox1"]').click(function () { 
        if ($(this).attr('checked')) { 
            // Add the new element if checked: 
            array.push($(this).attr('value')); 
        } 
        else { 
            // Remove the element if unchecked: 
            for (var i = 0; i < array.length; i++) { 
                if (array[i] == $(this).attr('value')) { 
                    array.splice(i, 1); 
                } 
            } 
        } 
        // Clear all labels: 
        $("label").each(function (i, elem) { 
            $(elem).html(""); 
        }); 
        // Check the array and update labels. 
        for (var i = 0; i < array.length; i++) { 
            if (i == 0) { 
                $("#lbl" + array[i].toUpperCase()).html("first"); 
            } 
            if (i == 1) { 
                $("#lbl" + array[i].toUpperCase()).html("second"); 
            } 
        } 
    }); 
});
//-->
</script>

Я получил часть, которая позволяет проверять только 8 флажков, но я застрял в том, что мне нужно сделать, чтобы фактически проанализировать данные после их отправкина страницу с таким именем, как check_combination.php.

Буду признателен за любую помощь

1 Ответ

2 голосов
/ 02 октября 2010
  • создайте скрытое поле ввода с порядком
  • обновите это поле ввода, когда что-то изменится
  • у вас будет заказ, готовый для обработки PHP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...