1

我有一些复选框,值从 1 到 10,值放在名为“locationID”的列下。问题是,如果我勾选例如 2 个框,它只选择输入两个框的最大值,我希望为每个我勾选的框添加一个新行。

我的数据库结构:表名:事件
列:column1,column2..,locationID

复选框 php 代码示例:

<input class="checkboxarna" name="locationID" style="z-index: 1;position: relative;" type="checkbox" value="1">

PHP 中的 MySQL 查询:http: //pastebin.com/ri7LCib2

我已经在谷歌和这里搜索过,但是因为我目前不太擅长 PHP,所以“理解别人的代码并将其转换为适合我的代码”对我来说真的很难,希望你能接受。

4

3 回答 3

3
<form action="test.php" method="post">
<input type="checkbox" name="check_list[]" value="value 1">
<input type="checkbox" name="check_list[]" value="value 2">
<input type="checkbox" name="check_list[]" value="value 3">
<input type="checkbox" name="check_list[]" value="value 4">
<input type="checkbox" name="check_list[]" value="value 5">
<input type="submit" />
</form>
<?php
if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {
            echo $check;
            // Run Your Insert query here. 
    }
}

希望这可以帮助

于 2013-02-25T10:16:52.273 回答
2

您需要将表单更改为:

<input type="checkbox" name="locationID[]" value="1" />A<br />
<input type="checkbox" name="locationID[]" value="2" />B<br />
<input type="checkbox" name="locationID[]" value="3" />C<br />

然后你的 php 需要一个循环来遍历这些值:

$loc= $_POST['locationID'];
if ( empty( $loc ) ) {
  echo("You didn't select any checkboxes");
} else {
  for( $i = 0; $i < count($loc); $i++ ) {
    //echo( $loc[$i] . " " ); //ideally insert into DB here
    mysql_query("INSERT INTO event 
         (EventName, EventStart, EventEnd, FromDate, ToDate, locationID, EventValue, isActive, photo)
          VALUES
           ('$_POST[namn]',
            '$_POST[eventstart]',
            '$_POST[eventend]',
            '$_POST[startdate]',
            '$_POST[enddate]',
            '$loc[$i]',
            '$AddValue',
            '$isActive',
            '$pic'
           )
         ");
       }
     }
于 2013-02-22T10:07:41.483 回答
0
$location_ids = $_POST['location_id'];
if(!empty($location_ids)){
 foreach($location_ids as $location_id)
 {
    if($location_id == 'on' || $location_id)
    {
  mysql_query("INSERT INTO event (EventName, EventStart, EventEnd, FromDate,  
      ToDate,          locationID, EventValue, isActive, photo)
      VALUES

      ('$_POST[namn]','$_POST[eventstart]','$_POST[eventend]','$_POST[startdate]',
       '$_POST[enddate]', '$_POST[locationID]','$AddValue','$isActive','$pic')");

     /* Sending locationID to jointable */
     mysql_query("INSERT INTO `jointable` VALUES('','".$_POST["locationID"]."')");
  }
 }
 mysql_close($con);
于 2013-02-22T10:07:10.100 回答