通过PHP发送复选框表单的最简单方法
所以我有很多复选框需要传递给PHP脚本,然后对于每个选中的复选框,一个值被写入一个文件 例如,如果选中7:30-8:30,则PHP通过PHP发送复选框表单的最简单方法,php,html,post,Php,Html,Post,所以我有很多复选框需要传递给PHP脚本,然后对于每个选中的复选框,一个值被写入一个文件 例如,如果选中7:30-8:30,则PHPfwrites将写入名为times的文件。那是我能应付的。我遇到的问题是将复选框传递给PHP。这是最明智的方式吗 <div id="table"> <form action="updatetime.php" method="post"> <table> <tr><td> <table> <t
fwrites
将写入名为times
的文件。那是我能应付的。我遇到的问题是将复选框传递给PHP。这是最明智的方式吗
<div id="table">
<form action="updatetime.php" method="post">
<table>
<tr><td>
<table>
<tr><td>8:00 AM - 8:30 AM</td><td><input type="checkbox" name="8830AM" value="9:30 PM - 10:00 PM" /></td></tr>
<tr><td>8:30 AM - 9:00 AM</td><td><input type="checkbox" name="8309AM" value="8:30 AM - 9:00 AM" /></td></tr>
<tr><td>9:00 AM - 9:30 AM</td><td><input type="checkbox" name="9930AM" value="9:00 AM - 9:30 AM" /></td></tr>
<tr><td>9:30 AM - 10:00 AM</td><td><input type="checkbox" name="93010AM" value="9:30 AM - 10:00 AM" /></td></tr>
<tr><td>10:00 AM - 10:30 AM</td><td><input type="checkbox" name="101030AM" value="10:00 AM - 10:30 AM" /></td></tr>
<tr><td>10:30 AM - 11:00 AM</td><td><input type="checkbox" name="103011AM" value="10:30 AM - 11:00 AM" /></td></tr>
<tr><td>11:00 AM - 11:30 PM</td><td><input type="checkbox" name="111130AM" value="11:00 AM - 11:30 PM" /></td></tr>
<tr><td>11:30 AM - 12:00 PM</td><td><input type="checkbox" name="113012PM" value="11:30 AM - 12:00 PM" /></td></tr>
<tr><td>12:00 PM - 12:30 PM</td><td><input type="checkbox" name="121230PM" value="12:00 PM - 12:30 PM" /></td></tr>
<tr><td>12:30 PM - 1:00 PM</td><td><input type="checkbox" name="12301PM" value="12:30 PM - 1:00 PM" /></td></tr>
<tr><td>1:00 PM - 1:30 PM</td><td><input type="checkbox" name="1130PM" value="1:00 PM - 1:30 PM" /></td></tr>
<tr><td>1:30 PM - 2:00 PM</td><td><input type="checkbox" name="1302PM" value="1:30 PM - 2:00 PM" /></td></tr>
<tr><td>2:00 PM - 2:30 PM</td><td><input type="checkbox" name="2230PM" value="2:00 PM - 2:30 PM" /></td></tr>
<tr><td>2:30 PM - 3:00 PM</td><td><input type="checkbox" name="2303PM" value="2:30 PM - 3:00 PM" /></td></tr></table></td><td><table>
<tr><td>3:00 PM - 3:30 PM</td><td><input type="checkbox" name="3330PM" value="3:00 PM - 3:30 PM" /></td></tr>
<tr><td>3:30 PM - 4:00 PM</td><td><input type="checkbox" name="3304PM" value="3:30 PM - 4:00 PM" /></td></tr>
<tr><td>4:00 PM - 4:30 PM</td><td><input type="checkbox" name="4430PM" value="4:00 PM - 4:30 PM" /></td></tr>
<tr><td>4:30 PM - 5:00 PM</td><td><input type="checkbox" name="4305PM" value="4:30 PM - 5:00 PM" /></td></tr>
<tr><td>5:00 PM - 5:30 PM</td><td><input type="checkbox" name="5530PM" value="5:00 PM - 5:30 PM" /></td></tr>
<tr><td>5:30 PM - 6:00 PM</td><td><input type="checkbox" name="5306PM" value="5:30 PM - 6:00 PM" /></td></tr>
<tr><td>6:00 PM - 6:30 PM</td><td><input type="checkbox" name="6630PM" value="6:00 PM - 6:30 PM" /></td></tr>
<tr><td>6:30 PM - 7:00 PM</td><td><input type="checkbox" name="6307PM" value="6:30 PM - 7:00 PM" /></td></tr>
<tr><td>7:00 PM - 7:30 PM</td><td><input type="checkbox" name="7730PM" value="7:00 PM - 7:30 PM" /></td></tr>
<tr><td>7:30 PM - 8:00 PM</td><td><input type="checkbox" name="7308PM" value="7:30 PM - 8:00 PM" /></td></tr>
<tr><td>8:00 PM - 8:30 PM</td><td><input type="checkbox" name="8830PM" value="8:00 PM - 8:30 PM" /></td></tr>
<tr><td>8:30 PM - 9:00 PM</td><td><input type="checkbox" name="8309PM" value="8:30 PM - 9:00 PM" /></td></tr>
<tr><td>9:00 PM - 9:30 PM</td><td><input type="checkbox" name="9930PM" value="9:00 PM - 9:30 PM" /></td></tr>
<tr><td>9:30 PM - 10:00 PM</td><td><input type="checkbox" name="93010PM" value="9:30 PM - 10:00 PM" /></td></tr>
</table>
</tr></td>
</table>
<div style="margin-right:auto;margin-left:auto;width:40px;padding-right:30px !important">
<input type="submit" name="submit" value="Update Times" />
</div>
</form>
。。。然后,诸如此类
$data = $a . '\n' . $b . '\n' . ...
$handle = fopen('times', 'w') or die('Failure.');
fwrite($handle, $data);
fclose($handle);
我相信有一种更简单的方法可以使用循环或其他方法来实现这一点。我可以随心所欲地换桌子。帮帮我
谢谢 只要给他们取一个相同的名字:
然后用
$\u POST['time']
将其作为一个数组读取,只需给它们取一个相同的名称:
然后用
$\u POST['time']
将其读取为一个数组,如果在name=“checkboxgroup[8830AM]”这样的名称中使用括号表示法,变量$\u POST['checkboxgroup']将是一个数组,很简单:)如果在name=“checkboxgroup[8830AM]”这样的名称中使用括号表示法,变量$\u POST['checkboxgroup']然后是一个数组,很简单:)是的,有:
<tr><td>8:30 PM - 9:00 PM</td><td><input type="checkbox" name="timeframes[]" value="8:30 PM - 9:00 PM" /></td></tr>
是的,有:
<tr><td>8:30 PM - 9:00 PM</td><td><input type="checkbox" name="timeframes[]" value="8:30 PM - 9:00 PM" /></td></tr>
$\u POST数组是一个关联键=>值数组,在这种情况下,键将是复选框的名称(例如903010PM),值将是输入的“value”属性中的任何内容(例如9:30 PM-10:00 PM) 因此,如果选择了(上午10:00-上午10:30),(上午11:00-上午11:30)和(下午12:00-下午12:30),则以下代码:
if(isset($_POST)){
foreach($_POST as $key => $val){
echo "key: ($key) value: ($val) <br/>";
}
}
if(isset($\u POST)){
foreach($\发布为$key=>$val){
echo“键:($key)值:($val)
”;
}
}
将输出:
键:(101030AM)值:(上午10:00-上午10:30)
键:(111130AM)值:(上午11:00-上午11:30)
key:(121230PM)value:(12:00 PM-12:30 PM)the$\u POST数组是一个关联键=>值数组,在这种情况下,键将是复选框的名称(例如903010PM),值将是输入的“value”属性中的任何内容(例如9:30 PM-10:00 PM) 因此,如果选择了(上午10:00-上午10:30),(上午11:00-上午11:30)和(下午12:00-下午12:30),则以下代码:
if(isset($_POST)){
foreach($_POST as $key => $val){
echo "key: ($key) value: ($val) <br/>";
}
}
if(isset($\u POST)){
foreach($\发布为$key=>$val){
echo“键:($key)值:($val)
”;
}
}
将输出:
键:(101030AM)值:(上午10:00-上午10:30)
键:(111130AM)值:(上午11:00-上午11:30)
key:(121230PM)value:(12:00 PM-12:30 PM)我尝试了一种简单的方法来创建任何php表单中的复选框和单选按钮。唯一的问题是我正在使用Codeigniter MVC框架 以下是可以插入到公共模型或任何辅助文件中的函数定义
function createOptions($fieldName, $labelsArray=array(), $selectedOption, $fieldType,$valuesArray = array()) {
$returnString = '';
if(count($valuesArray)!=count($labelsArray))
$valuesArray=$lebelsArray;
if ($fieldType === 'checkbox') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='   <input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if(in_array($valuesArray[$i], $selectedOption)){
$returnString.=' checked="checked" ';
}
$returnString.=' />  <label>'.$labelsArray[$i].'</label>';
}
}
if ($fieldType === 'radio') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='  <input type="radio" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if($valuesArray[$i]== $selectedOption)
$returnString.=' checked="checked" ';
$returnString.=' /><label>'.$labelsArray[$i].'</label>';
}
}
return $returnString;
}
函数createOptions($fieldName,$labelsArray=array(),$selectedOption,$fieldType,$valuesArray=array()){
$returnString='';
if(count($valuesArray)!=count($labelsArray))
$valuesArray=$lebelsArray;
如果($fieldType=='checkbox'){
对于($i=0;$i)
第一个参数是复选框字段或单选字段的名称,这对于两种情况下的所有选项都是相同的。第二个参数是标签数组,第三个参数是选中的选项,它将在加载表单时显示选中的选项。第四个参数是字段类型,它将是字符串“checkbox”或“radio”。第五个参数是值数组,如果resent将包含标签的值,其顺序与标签的顺序相同。如果没有,标签数组将被视为值数组。我尝试了一种简单的方法来创建任何php表单中的复选框和单选按钮。唯一的问题是我使用的是Codeigniter MVC框架 以下是可以插入到公共模型或任何辅助文件中的函数定义
function createOptions($fieldName, $labelsArray=array(), $selectedOption, $fieldType,$valuesArray = array()) {
$returnString = '';
if(count($valuesArray)!=count($labelsArray))
$valuesArray=$lebelsArray;
if ($fieldType === 'checkbox') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='   <input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if(in_array($valuesArray[$i], $selectedOption)){
$returnString.=' checked="checked" ';
}
$returnString.=' />  <label>'.$labelsArray[$i].'</label>';
}
}
if ($fieldType === 'radio') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='  <input type="radio" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if($valuesArray[$i]== $selectedOption)
$returnString.=' checked="checked" ';
$returnString.=' /><label>'.$labelsArray[$i].'</label>';
}
}
return $returnString;
}
函数createOptions($fieldName,$labelsArray=array(),$selectedOption,$fieldType,$valuesArray=array()){
$returnString='';
if(count($valuesArray)!=count($labelsArray))
$valuesArray=$lebelsArray;
如果($fieldType=='checkbox'){
对于($i=0;$i)
第一个参数是复选框字段或单选字段的名称,这对于两种情况下的所有选项都是相同的。第二个参数是标签数组,第三个参数是选中的选项,它将在加载表单时显示选中的选项。第四个参数是字段类型,它将是字符串“checkbox”或“radio”。第五个参数是值数组,如果resent将包含标签的值,其顺序与标签的顺序相同。如果没有,标签数组将被视为值数组。@ben那么我将$timeframe作为变量并写入它?是的,
$timeframe
在这种情况下看起来像8:30 PM-9:00 PM
。@ben Hmm…当我这样做时,我得到:警告:无效argu第2行的updatetime.php中为foreach()提供了一个测试。这是我正在使用的php:
Peter,我刚刚添加了一个isset()
测试,这是在未选中任何框的情况下所必需的。是这样吗?另外,您是否将所有8830AM
替换为时间框架[]
?@ben那么我将$timeframe作为变量并编写它?是的,$timeframe
在这种情况下看起来像8:30 PM-9:00 PM
。@ben Hmm…当我这样做时,我得到:警告:为foreach()提供的参数无效在第2行的updatetime.php中
。这是我正在使用的php:
Peter,我刚刚添加了一个isset()
测试,这是在没有选中复选框的情况下所必需的。是这样吗?另外,您是否将所有8830AM
等替换为时间段[]
?
<?php
echo $this->common_model->createOptions('userHobbies[]', $hobbyOptions, $userHobbies, 'checkbox'); ?>