PHP:节省工作日+两次

时间:2011-06-21 14:00:59

标签: php

我想这样做,你可以选择你的可用时间,星期一到星期日,从xx:00到xx:00。

对于HTML我做了一个for循环,输出工作日复选框和两个时间选项,如下所示: jsfiddle.net/Sbcbg

来源:

$weekDays = array('Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag', 'Söndag');
echo '<table cellspacing="0" cellpadding="0" width="300">';
    for($i=0; $i<count($weekDays); $i++){
     echo '<tr><td>';
     echo '<input type="checkbox" name="day'.$i.'">'.$weekDays[$i].'</option>';
     echo '</td><td>';
     echo '<select>';       
        for($f=23; $f>18; $f--){
         echo ' <option name="from'.$i.'" select="">'.$f.':00</option> ';
        }
     echo '</select>';
     echo ' till ';
     echo '<select>';
        for($t=0; $t<10; $t++){
         echo ' <option name="from'.$i.'" select="">'.$t.':00</option> ';
        }
     echo '</select>';
     echo '</td></tr>';
    }
echo '</table>';

我怎么知道保存部分是什么?

如何检查是否检查了一个工作日,如果是,则取两个选项值(两次)并输出它们?

因此,如果您检查Tisdag(星期二)并选择时间22:00,而在另一个中选择时间04:00,那么当您提交表单时,它应该输出您在星期二22:00-04:00检查过的时间。

先谢谢

1 个答案:

答案 0 :(得分:1)

这里似乎有一些不匹配的标签。例如:

'<input type="checkbox" name="day'.$i.'">'.$weekDays[$i].'</option>'

您正在关闭一个永不打开的选项。

我想你想要一个复选框来表明这一天是有一些可用性的日子。我建议将其更改为:

'<label for="day'.$i.'"><input type="checkbox" name="day'.$i.'" value="1"/>'.$weekDays[$i].'</label>'

然后,对于您的选择,您需要定义选择的名称和选项的值。该名称将成为$_POST数组中的索引,该值将是用户所选option的值。

如:

echo '<select name="from'.$i.'">';       
    for($f=23; $f>18; $f--){
     echo ' <option value="'.$f.':00">'.$f.':00</option> ';
    }
 echo '</select>';

然后你的提交检查看起来像:

for($i = 0; $i< 7; $i++) {
    if(isset($_POST['day'.$i]) && ($_POST['day'.$i] == 1) {
        $from = $_POST['from'.$i];
        $to = $_POST['to'.$i];
        //do something with this data
    }
}