Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP发送复选框表单的最简单方法_Php_Html_Post - Fatal编程技术网

通过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

所以我有很多复选框需要传递给PHP脚本,然后对于每个选中的复选框,一个值被写入一个文件

例如,如果选中7:30-8:30,则PHP
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.='&nbsp&nbsp&nbsp<input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
                if(in_array($valuesArray[$i], $selectedOption)){
                        $returnString.=' checked="checked" ';
                }
                $returnString.=' />&nbsp&nbsp<label>'.$labelsArray[$i].'</label>';
            }
        }
        if ($fieldType === 'radio') {
            for ($i=0;$i<count($labelsArray);$i++) {
                $returnString.='&nbsp&nbsp<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.='&nbsp&nbsp&nbsp<input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
                if(in_array($valuesArray[$i], $selectedOption)){
                        $returnString.=' checked="checked" ';
                }
                $returnString.=' />&nbsp&nbsp<label>'.$labelsArray[$i].'</label>';
            }
        }
        if ($fieldType === 'radio') {
            for ($i=0;$i<count($labelsArray);$i++) {
                $returnString.='&nbsp&nbsp<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'); ?>