php 尝试从复选框回显数组,未显示错误,但数据仍记录在数据库中[重复]

ldioqlga  于 2023-01-04  发布在  PHP
关注(0)|答案(1)|浏览(82)
    • 此问题在此处已有答案**:

getting multiple checkboxes names/id's with php(4个答案)
17小时前关门了。
我在第25和26行有一个错误。它说"为foreach()提供的参数无效"。我想从复选框中回显所选的事件。但是在显示页面上。它没有出现(回显)。但是,它在数据库中可用。
我在这一节上加了评论,我觉得有一个错误
data.php

<html>
<head>
<title>data.php</title>
</head>
<center>
<h1>  <p style="color:red;">Your DATA</p> </h1>
<body style="background-color:powderblue;">
<center><h2>
<?php
$Firstname=$_POST['f_name'];
$Lastname=$_POST['l_name'];
$emeil=$_POST['emeil'];
$friend=$_POST['friend'];
$event=$_POST['check_list'];
$selected = $event; //trying to define variable

if(is_array($event)) {
    foreach($_POST['check_list'] as $selected){ //trying to echo multiple data from checkbox
        echo $selected;
    }
    }

echo " 1)Firstname :   ". $Firstname;
echo "<br>";
echo " 2)Lastname :   ". $Lastname;
echo "<br>";
echo " 3)emeil :   ". $emeil;
echo "<br>";
echo " 4)friend :   ". $friend;
echo "<br>";
echo " 5)event : ". $selected; //echo statement
echo "<br>";


  
$link = mysqli_connect("localhost","root","","eventreg");

if ($link === false){
    die("ERROR:Could not connect.".
    mysqli_connect_error());
}
$sql = "INSERT INTO eventreg (f_name,l_name,email,event,friend) VALUES ('$Firstname','$Lastname','$emeil','$event','$friend')";
if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
}else{
    echo"ERROR:Could not able to execute".
    mysqli_error($link);
}
mysqli_close($link);
?>
</center></h2>
</body>
</html>

这是注册页面的编码(复选框)
register.php

<html>
<center>
<head><h1>Online Event Registration</hi>
<h2> Register today</h2>
</head>

<body style="background-color:powderblue;">
<form action="data.php" method="post">

First name :<input type="text" name="f_name"required>
<br>
<br>
Last name :<input type="text" name="l_name"required>
<br>
<br>
emeil :<input type="text" name="emeil"size="20" maxlength="60" required /></p>
<br>

How many friend you will bring along?
<br>
<br>
<select id="friend" name="friend">
<option value="one">ONE</OPTION>
<option value="two">TWO</OPTION>
<option value="three">THREE</OPTION>
<option value="four">FOUR</OPTION>
</select>
<br>
<br>
<br>
How do you hear about the event ? //checkbox coding
<br>
<input type="checkbox" id="cfriend@colleague" name="check_list" value="friend@colleague">
  <label for="cfriend@colleague"> Friend @ Colleague</label><br>
<input type="checkbox" id="cadvertisement" name="check_list" value="advertisement">
  <label for="cadvertisement"> Advertisement</label><br>
  <input type="checkbox" id="cTV" name="check_list" value="TV">
  <label for="cTV"> TV</label><br>  
  <br>
  <br>
  
  

<input type="submit" value="Register">
</form>
<a href="http://localhost:8080/final%20project/paparan.php">paparan Admin</a>
</body>
</html>

我已经参考了一些关于foreach正确用法的在线示例,但我仍然无法找出错误所在。我相信这与注册页面编码中的复选框编码有关(第二部分编码)

e5nszbig

e5nszbig1#

将复选框的名称更改为数组check_list[],如下所示

<input type="checkbox" id="cfriend@colleague" name="check_list[]" value="friend@colleague">
<label for="cfriend@colleague"> Friend @ Colleague</label><br>
<input type="checkbox" id="cadvertisement" name="check_list[]" value="advertisement">
<label for="cadvertisement"> Advertisement</label><br>
<input type="checkbox" id="cTV" name="check_list[]" value="TV">
<label for="cTV"> TV</label>

获取数组数据

<?php
$Firstname = $_POST['f_name'];
$Lastname = $_POST['l_name'];
$emeil = $_POST['emeil'];
$friend = $_POST['friend'];
$event = implode(", ", $_POST['check_list']);
echo " 1)Firstname :   " . $Firstname;
echo "<br>";
echo " 2)Lastname :   " . $Lastname;
echo "<br>";
echo " 3)emeil :   " . $emeil;
echo "<br>";
echo " 4)friend :   " . $friend;
echo "<br>";
echo " 5)event : " . $event;
echo "<br>";

相关问题