默认情况下分配一个值,允许用户更改它


Assigning a value by default, allowing user to change it

我目前有一个系统,其中用户,雇员,复选框(单选按钮),让雇主知道他们在某些日期是可用(值=1)还是不可(值=2)。

echo '<ul id="datumselectie">';
echo '<li class="demo"><span class="beschikbaar"></span><span class="onbeschikbaar"></span>    </li>';
while ($datum <= $data) {
echo '<li class="' .strftime('%A',$datum). '">';                
echo strftime('%A %e %B %Y',$datum);
echo '<input type="radio" name="data[' .strftime('%Y-%m-%d',$datum). ']" value="1" />';
echo '<input type="radio" name="data[' .strftime('%Y-%m-%d',$datum). ']" value="0" />';

我想改变系统的工作方式,以便在未来两周的数据值默认设置为1,同时让用户选择在实际日期前一周将值更改为0。

有人能帮我一下吗?

简而言之,您需要一个简单的DATEDIFF来确定应该选择哪个单选:

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?> 

一旦确定,您只需要编写适当的按钮与'checked'标签:

echo '<input type="radio" name="data[' .strftime('%Y-%m-%d',$datum). ']" value="1" checked />';

根据评论,再添加一件事…如果您想在数据库中设置它,您需要了解SQL行。当然,假设您正在使用mySQL。

根据范围设置一个值,如下所示:

UPDATE [tablename] set defaultValue = 1 where [inputDate] between ([startDate] and [endDate]);

在这里设置你的值。你需要把起始日期设为今天,结束日期设为两周后。在PHP中:

<?php
echo "Today is " . date("Y/m/d") . "<br>";
$date = new DateTime(date("Y/m/d"));
$date->modify('+14 days');
echo $date->format('Y-m-d');
?> 

您必须自己完成其余的编码,但这是基本的想法。另外,快速搜索一下mysqli是如何工作的,以获得PHP代码的确切语法,以便在服务器上执行此操作。