У меня есть такая форма:
<form action = "" method = "post">
<input type = "checkbox" name = "check_list[]" value = "0" id = "check_list">- 0<br>
<input type = "checkbox" name = "check_list[]" value = "1" id = "check_list">- 1<br>
<input type = "checkbox" name = "check_list[]" value = "2" id = "check_list">- 2<br>
<input type = "checkbox" name = "check_list[]" value = "3" id = "check_list">- 3<br>
<input type = "checkbox" name = "check_list[]" value = "4" id = "check_list">- 4<br>
<input type = "checkbox" name = "check_list[]" value = "5" id = "check_list">- 5<br>
<input type = "checkbox" name = "check_list[]" value = "6" id = "check_list">- 6<br>
<input type = "checkbox" name = "check_list[]" value = "7" id = "check_list">- 7<br><br>
<input type = "submit" name = "submit" Value = "Submit"/>
</form>
Теперь я не буду проверять результат этой формы, если результат имеет (2,3,6), нам нужно что-то сделать, и если результат имеет значение (2,3), нам нужно что-то сделать, и если результат имеет значение ( 2) нам нужно что-то сделать, и если результат имеет значение (3), нам нужно что-то сделать, а если результат имеет значение (6), нам нужно что-то сделать,
Как это сделать в php?
Я пробую это, но у меня не получается
if (!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $check) {
if ($check =='2' && $check =='3' && $check =='6'){
// do something
} elseif ($check =='2' && $check =='3'){
// do something
} elseif ($check =='6'){
// do something
} elseif ($check =='3'){
// do something
} elseif ($check =='2'){
// do something
}
}
}
Также я пробую это и ничего не делаю
if (in_array(array(2,3,6),$_POST['check_list'])){
// not work
} elseif (in_array(array(2,3),$_POST['check_list'])){
// not work
} elseif (in_array(array(2),$_POST['check_list'])){
// work
} elseif (in_array(array(3),$_POST['check_list'])){
// work
} elseif (in_array(array(7),$_POST['check_list'])){
// work
}
Вы пробовали использовать оператор переключения php.net/manual/en/control-structures.switch.php
Как думаете, if используете?
@smith посмотреть мое обновление ,,,
if ($check =='2' && $check =='3' && $check =='6'){ как может $ check быть более чем одним делом одновременно?
@ Özgür-can-karagöz да, смотрите мое обновление
@smith, так что мне делать?
Также: php.net/manual/en/function.array-search.php
@ eliot-k плохо со мной, потому что у меня многозначность !!
@smith я пробую if (in_array(array(2,3,6),$_POST['check_list'])){ ...} , но не работает






Короче говоря, когда вы отправляете форму, у вас будет массив $_POST['check_list'], содержащий проверенные вами элементы. Итак, если вы отметите 2, 3 и 6, $_POST['check_list'] = [2, 3, 6]. Обратите внимание: если вы не отметите какие-либо параметры, $_POST['check_list'] не будет существовать.
Затем вы можете использовать if (in_array(2, $_POST['check_list'])) {...}, чтобы делать то, что вы хотите, если, например, отмечено 2.
а если у меня 2,3,6? как можно использовать его в in_array ??
Вы можете проверить этот ответ
@GutierrezPS, сравнивающий $ _POST ['check_list'], не будет работать должным образом, если отмечены другие параметры. используйте пустую функцию, чтобы проверить, установлен ли $ _POST ['check_list'].
@abukotsh in_array(2, $array) && in_array(3, $array) && in_array(6, $array)
<?php
if (!empty($_POST['check_list'])){
if (
has_values(Array(2,3,6), $_POST['check_list'])
){
//Do what you need to do
}else if (
has_values(Array(2,3), $_POST['check_list'])
){
//Do what you need to do
}else if (
has_values(Array(2), $_POST['check_list'])
){
//Do what you need to do
}
}else{
//no checkboxes have been set
}
function has_values($testValues, $arrValues){
/*
testValues is a 1 dimensional array (needles)
arrValues is a 1 dimensional array that takes the array of set checkboxs ( haystack )
*/
foreach ($testValues as $key => $value) {
if (!in_array($value, $arrValues)){
return false;
}
}
return true;
}
Примечания разработчика in_array не зависит от типа.
если флажок не установлен, индекс $ _POST ['check_list'] изменится
Я думаю, что array_diff или array_intersect, вероятно, лучше, но это сработает, так что вы можете проголосовать за меня.
$_POST[check_list]будет массивом, который вы можете использовать