2010-02-22 177 views
8
<input type="checkbox" class='form' name="checkbox_1" /> 

<input type="checkbox" class='form' name="checkbox_2" /> 

<input type="checkbox" class='form' name="checkbox_3" /> 

......... 

<input type="checkbox" class='form' name="checkbox_10" /> 

from已经使用“POST”方法提交。确定哪些复选框并按递增顺序编写它们的编号。用空格分隔所有数字(不是新行),不要使用任何HTML格式。如何使用PHP post方法提交复选框值

例如:

如果选中了复选框3,5和10,

输出继电器将是:

+0

所以,这里有什么问题: 提交表单通过使用下面的代码获得选中的复选框的值之后? – anthares 2010-02-22 09:07:30

+0

那么问题是什么?详细说明你想要的东西。 – Kangkan 2010-02-22 09:08:32

+0

有什么理由在这里不接受答案吗? – tw16 2012-03-15 12:41:00

回答

21

更改的标记到像

<input type="checkbox" class='form' value="1" name="checkbox[]" /> 
<input type="checkbox" class='form' value="2" name="checkbox[]" /> 
<input type="checkbox" class='form' value="3" name="checkbox[]" /> 

并得到v alues提交,使用一个简单的循环

foreach($_POST['checkbox'] as $checkbox){ 
    echo $checkbox . ' '; 
} 
+8

if(isset($ _ POST ['checkbox'])&& is_array($ _ POST ['checkbox'])){ echo implode('',$ _POST ['checkbox']); } – janmoesen 2010-02-22 10:25:41

+0

如何在简单的HTML表单中使用php变量复选框[]? – 2013-01-02 09:18:11

5

遍历$_POST阵列和使用preg_match()拉出数如果它与 “checkbox_” 开始:

$checked = array(); 
foreach ($_POST as $k => $v) { 
    if (preg_match('|^checkbox_(\d+)$!', $k, $matches) { 
    $checked[] = $matches[1]; 
    } 
} 
echo implode(' ', $matches); 
+1

vsr说什么似乎更合适,这样你就不必使用正则表达式搜索字段。 – azkotoki 2010-02-22 10:25:51

4
<?php 
$checked = array(); 

foreach ($_POST as $k => $v) { 
$subject = $k; 
$pattern = '/^checkbox_(\d+)$/'; 
    if (preg_match($pattern, $subject, $matches)) 
    { 
    $checked[] = $matches[1]; 
    } 
} 

asort($checked); 

foreach ($checked as $key=>$value) 
echo $value .' '; 
?> 
0

对于您可以使用下面的方法来得到复选框值每个复选框的值取出进行检查或不....

在我的表单页面(周一至周日)

<input type="checkbox" name="checked[]" class="onoffswitch-checkbox" id="mononoffswitch" value="Mon" checked> 

在我的PHP代码

function IsChecked($chkname,$value) 
{ 
    if(!empty($_POST[$chkname])) 
    { 
     foreach($_POST[$chkname] as $chkval) 
     { 
      if($chkval == $value) 
      { 
       return true; 
      } 
     } 
    } 
    return false; 
} 

if(IsChecked('checked','Mon')) 
{ 
    $checkedMon = "Y"; 

}else { 
    $checkedMon = "N"; 

} 

if(IsChecked('checked','Tue')) 
{ 
    $checkedTue = "Y"; 

}else { 
    $checkedTue = "N"; 

} 

if(IsChecked('checked','Wed')) 
{ 
    $checkedWed = "Y"; 

}else { 
    $checkedWed = "N"; 

} 

if(IsChecked('checked','Thur')) 
{ 
    $checkedThur = "Y"; 

}else { 
    $checkedThur = "N"; 

} 

if(IsChecked('checked','Fri')) 
{ 
    $checkedFri = "Y"; 

}else { 
    $checkedFri = "N"; 

} 

if(IsChecked('checked','Sat')) 
{ 
    $checkedSat = "Y"; 

}else { 
    $checkedSat = "N"; 

} 

if(IsChecked('checked','Sun')) 
{ 
    $checkedSun = "Y"; 

}else { 
    $checkedSun = "N"; 

} 

现在,你可以得到这些变量的值,并且可以使用您插入进言......

像这样

$addweekdays = mysqli_query($conn, "INSERT INTO weekdays(id,monday,tuesday,wednesday,thursday,friday,saturday,sunday) VALUES('$Id', '$checkedMon', '$checkedTue', '$checkedWed', '$checkedThur','$checkedFri','$checkedSat','$checkedSun')") ... 
11

HTML代码::

<input type="checkbox" name="arrayValue[]" value="value1" > value1 <br /> 
    <input type="checkbox" name="arrayValue[]" value="value2" > value2 <br /> 
    <input type="checkbox" name="arrayValue[]" value="value3" > value3 <br /> 
    <input type="checkbox" name="arrayValue[]" value="value4" > value4 <br /> 

PHP代码::

$checkBoxValue = join(", ", $_POST['arrayValue']); // here first (,) is user-define 
                // means, you can change it whatever 
               // you want, even if it can be (space) or others 

现在,您可以在一个变量中获得'checkbox'的整个值iable

0
$checked = array(); 

foreach ($_POST as $k => $v) { 
$subject = $k; 
$pattern = '/^checkbox_(\d+)$/'; 
    if (preg_match($pattern, $subject, $matches)) 
    { 
    $checked[] = $matches[1]; 
    } 
} 

asort($checked); 

foreach ($checked as $key=>$value) 
echo $value .' '; 
0

采取的数组,你作为复选框的name="checkbox[]"名字和你所有的复选框,使用相同的名称。

<?php 
$chk=""; 
foreach($_POST['checkbox'] as $checkbox) 
{ 
$chk=$chk.$checkbox; 
} 
echo $chk; 
?>