0

我有一个 3 的数据库。第一个表名为“periorismoi”和“programmata”。第一个有 2 个列(“Auxon”、“Title”),第二个有 3 个(“Auxon”、“Name”、“Periorismoi”)。我制作了一个页面,添加了一个新的“programmata”。在“名称”列中,将从表单中添加一个文本,在“Periorismoi”列中,将从复选框中添加一个名称(来自同一表单)。复选框名称将来自“periorismoi”表。我给你表单的页面,然后是插入到数据库(操作)页面。它不起作用。也许是服务器错误?在我将复选框放入表单之前,它曾经可以工作。请注意,Periorismoi 与 periorismoi 不同。

   <form action='Insert.php' method="post" enctype='multipart/form-data' periorismoi="periorismoi">
   <textarea name="title" placeholder="Πρόγραμμα" rows=\"1\" cols=\"50\"></textarea>
<?php
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$q="select * FROM periorismoi";
$result=mysql_query($q);
$counts=mysql_num_rows($result);
for ( $i = 0; $i < $counts; ++$i ) {
$row = mysql_fetch_array( $result );
    if(isset($row[ "Title" ]))
   {$Title= $row[ "Title" ];
     }
    ?> 
<input type="checkbox" name="<?php echo "periorismoi$i"; ?>" value=""<?php echo $row['Title']; ?>""><?php echo "$Title";?>      <br>      
<?php
}
?>

Insert.php 页面:

<?php
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$title= trim($_POST["title"]);
if(!$link) 
{
   die('Could not connect: ' . mysql_error());
}
else {
    if(strlen($title) == 0) 
    {
        header("Location:Index.php"); 
    }
    else
    {
     mysql_query("SET NAMES utf8");
      $periorismoi = implode(',', $_POST['periorismoi']);
    $len = sizeof($periorismoi);
    for($i=0; $i<$len;$i++){ 
        $sql="INSERT INTO programmata (Auxon,Title,Periorismoi) VALUES ('','$title','$periorismoi')";
                 mysql_query($sql);
    }
      header("Location:Index.php"); ; 
    }
}
?>
4

1 回答 1

2

在表单中,您创建多个具有不同名称属性的复选框:

(periorismoi0, periorismoi1, ...)

然后,当您读取参数时,您会尝试读取$_POST['periorismoi']不存在的参数。您应该阅读每个复选框($_POST['periorismoi0'], $_POST['periorismoi1'], ...(我强烈不推荐),或者您应该定义多个具有相同名称的复选框。

检查这个线程:Get $_POST from multiple checkboxs

于 2013-10-02T23:08:56.617 回答