隐藏字段问题与单选按钮组合


Hidden field issue in combination with radio buttons

我有一个网页,用户在其中选择他们是否在某个日期可用(=1)(beschikbaar)或不可用(=0),它们在列表中提供。

我使用单选按钮,以确保用户不能选择可用和不可用的同一日期,然而。只要用户实际输入他们是否可用,代码就可以正常工作。我的问题发生在用户不输入任何东西时,因为隐藏字段,列表中的所有空日期都以值0发送到数据库。

我需要隐藏字段来确保用户条目和日期实际上是匹配的,但它似乎是上述问题的原因。有人能告诉我怎么解决这个问题吗?

le代码:

<?php 
if(isset($_POST['beschikbaarheid'])) {
mysql_connect("localhost", "****", "****")or die("cannot connect to server");
mysql_select_db("****")or die("cannot select db"); 

 $UserID = $_POST['UserID'];
 $beschikbaarheid = $_POST['beschikbaarheid'];
 $Datum = $_POST['Datum'];

 foreach ($_POST['Datum'] as $date){
$index = strftime('%d%m%y',strtotime($date));
$beschikbaarheid = (isset($_POST['beschikbaarheid'][$index]) && ($_POST['beschikbaarheid'][$index] == 1 ))?1:0;
mysql_query("INSERT INTO `Werkdagen` (`UserID`, `Datum`, `bevestigd`, `invuldatum`, `beschikbaarheid`) VALUES ('$UserID', '$date', FALSE, NOW(), '$beschikbaarheid')");

 <?php 
setlocale(LC_TIME, 'dutch');
date_default_timezone_set("Europe/Amsterdam");
$two = strtotime('+1 weeks'); $date = time(); while ($date <= $two) {
    echo "<li class=".strftime('%A',$date) . "><input name='Datum[]' type='hidden'  id='".strftime('%A %e %B %Y',$date) . "' value='".strftime('%Y-%m-%d',$date)."'><input  name='beschikbaarheid[".strftime('%d%m%y',$date) . "]' type='radio' value='1'><input    name='beschikbaarheid[".strftime('%d%m%y',$date) . "]' type='radio' value='0'>".strftime('%A %e     %B %Y',$date) . "</li>";
$date += 86400;

}

首先,我将清理输入,即使它是一个单选按钮。在Chrome中,我可以在单选按钮值下输入各种讨厌的东西,并将其发送到数据库。也许把它丢掉。

我觉得你的默认值设置为0,意味着不可用。我会这样做:

表单单选按钮的值字段为A或U,表示可用或不可用。然后服务器端过滤出A或U,如果你得到一个零,你知道该字段没有输入。

<input type="radio" id="r1" name="rate" value="A">Available</input>
<input type="radio" id="r1" name="rate" value="U">Unavailable</input>

服务器端有

if($_POST['r1'] == "A") //Set available
else if($_POST['r1'] == "U") //Set unavailable
else if($_POST['r1'] == 0 || !isset($_POST['r1']) ) //Untouched entry field, something wrong

这就是你想做的吗?过滤掉选中的条目和未动的条目?