将多个值传递给复选框的“值”属性

时间:2017-07-12 08:31:05

标签: php mysql

如何将多个值传递给已包含值的复选框输入的value属性。我想将$row['ProductStartDate']$row['ProductEndDate']传递给复选框"check[]"以及它自己的值$row['ProductID']。这样,对于从复选框中选中的每个ProductEndDate,都会发生ProductStartDateProductID之间的计算。

$sql = 'SELECT * FROM product ORDER BY ProductID ASC';
$result_select = mysql_query($sql);
$rows = array();
while($row = mysql_fetch_array($result_select))
    $rows[] = $row;
foreach ($rows as $row) {
    echo '<tr>';
    echo '<td>'. $row['ProductID'] . '</td>';
    echo '<td>'. $row['ProductName'] . '</td>';
    echo '<td>'. $row['ProductPrice'] . '</td>';
    echo '<td>'. $row['ProductStartDate'] . '</td>';
    echo '<td>'. $row['ProductEndDate'] . '</td>';
    echo '<td><a class="btn" href="productupdate.php?id='.$row['ProductID'].'">Update</a></td>';
    echo ' ';
    echo '<td><a class="btn" href="productdelete.php?id='.$row['ProductID'].'">Delete</a></td>';
    echo ' ';
    echo '<td><input type="checkbox" name="check[]" value="'.$row['ProductID'] .'" ></td>';
    echo '</tr>';
}

$checkbox1 = $_POST['check'];
for ($i=0; $i<sizeof($checkbox1); $i++) {

    $date1 = strtotime($row['ProductStartDate']);
    $date2 = strtotime($row['ProductEndDate']);
    // Adding current month + all months in each passed year
    $diff = 1 + (date("Y",$date2)-date("Y",$date1))*12;
    // Add/subtract month difference
    $diff += date("m",$date2)-date("m",$date1);

    $sql3="INSERT into enrollment (StudentID, ProductID, EnrollmentMonth) VALUES($StudentID, $checkbox1[$i], $diff)";
    mysql_query($sql3);
}

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法

1)只需使用任何分隔符

连接所需的值
echo '<td><input type="checkbox" value="'.$row['ProductStartDate'].':'.$row['ProductID'].':'.$row['ProductEndDate'].'" name="chk_export" /></td>';

2)在发布数据时将您的值分开

$values = explode(":", $_POST['chk_export']);
$values[0],$values[1],$values[2]

将具有所需的值

或者您可以在隐藏字段中设置开始日期和结束日期,并在表单发布时获取它们

答案 1 :(得分:0)

$sql = 'SELECT * FROM product ORDER BY ProductID ASC';
$result_select = mysql_query($sql);
$rows = array();
while($row = mysql_fetch_array($result_select))
    $rows[] = $row;
foreach ($rows as $row) {
    echo '<tr>';
    echo '<td>'. $row['ProductID'] . '</td>';
    echo '<td>'. $row['ProductName'] . '</td>';
    echo '<td>'. $row['ProductPrice'] . '</td>';
    echo '<td>'. $row['ProductStartDate'] . '</td>';
    echo '<td>'. $row['ProductEndDate'] . '</td>';
    echo '<td><a class="btn" href="productupdate.php?id='.$row['ProductID'].'">Update</a></td>';
    echo ' ';
    echo '<td><a class="btn" href="productdelete.php?id='.$row['ProductID'].'">Delete</a></td>';
    echo ' ';
    echo '<td><input type="checkbox" name="check[]" value="'.$row['ProductID'] .'" ></td>';
    echo '<td><input type="checkbox" name="startDates[]" value="'.$row['ProductStartDate'] .'" ></td>';
    echo '<td><input type="checkbox" name="endDates[]" value="'.$row['ProductEndDate'] .'" ></td>';
    echo '</tr>';
}


$checkbox1 = $_POST['check'];
for ($i=0; $i<sizeof($checkbox1); $i++) {

    $date1 = strtotime($_POST['startDates'][$i]);
    $date2 = strtotime($_POST['endDates'][$i]);
    // Adding current month + all months in each passed year
    $diff = 1 + (date("Y",$date2)-date("Y",$date1))*12;
    // Add/subtract month difference
    $diff += date("m",$date2)-date("m",$date1);

    $sql3="INSERT into enrollment (StudentID, ProductID, EnrollmentMonth) VALUES($StudentID, $checkbox1[$i], $diff)";
    mysql_query($sql3);
}

并停止使用“mysql_ *”函数,请参阅上面的评论以回答您的问题。