php – 将下拉菜单中的多个值保存到数据库中
发布时间:2020-12-13 22:53:53 所属栏目:PHP教程 来源:网络整理
导读:我有一个包含下拉列表的表单.我希望该用户应该能够从该下拉列表中选择多个值 form class="form-horizontal" role="form" action="add.php" enctype="multipart/form-data" method="post" div class="form-group" label class="col-lg-4 control-label"Name/l
我有一个包含下拉列表的表单.我希望该用户应该能够从该下拉列表中选择多个值
<form class="form-horizontal" role="form" action="add.php" enctype="multipart/form-data" method="post"> <div class="form-group"> <label class="col-lg-4 control-label">Name</label> <div class="col-lg-6"> <input class="form-control" value="" type="text" name="name" > </div> </div> <div class="form-group"> <label class="col-lg-4 control-label">Address</label> <div class="col-lg-6"> <input class="form-control" value="" type="text" name="address" > </div> </div> <div class="form-group"> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db"; // Create connection $con = mysqli_connect($servername,$username,$password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } echo "<label class='col-lg-4 control-label'>Student</label>"; echo "<div class='col-lg-6'>"; $sql = "SELECT student FROM student"; $result = $con->query($sql); echo "<select class='form-control' name='student' multiple>"; while($row = $result->fetch_assoc()) { echo "<option value='" . $row['student'] . "'>" . $row['student'] . "</option>"; } echo "</select>"; echo"</div>"; ?> </div> <div class="form-group"> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db"; // Create connection $con = mysqli_connect($servername,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } echo "<label class='col-lg-4 control-label'>Subject</label>"; echo "<div class='col-lg-6'>"; $sql = "SELECT subject FROM subject"; $result = $con->query($sql); echo "<select class='form-control' name='subject' multiple>"; while($row = $result->fetch_assoc()) { echo "<option value='" . $row['subject'] . "'>" . $row['subject'] . "</option>"; } echo "</select>"; echo"</div>"; ?> </div> <div class="form-group"> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db"; // Create connection $con = mysqli_connect($servername,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } echo "<label class='col-lg-4 control-label'>Hobby</label>"; echo "<div class='col-lg-6'>"; $sql = "SELECT hobby FROM hobby"; $result = $con->query($sql); echo "<select class='form-control' name='hobby' multiple>"; while($row = $result->fetch_assoc()) { echo "<option value='" . $row['hobby'] . "'>" . $row['hobby'] . "</option>"; } echo "</select>"; echo"</div>"; ?> </div> <div class="form-group"> <label class="col-md-3 control-label"></label> <div class="col-md-8"> <input class="btn btn-primary" value="Save Changes" type="submit" name="submit"> </div> </div> </form> add.php <?php include('admin_session.php'); $con=mysqli_connect("localhost","root","","db"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $name = mysqli_real_escape_string($con,$_POST['name']); $address = mysqli_real_escape_string($con,$_POST['address']); $student = mysqli_real_escape_string($con,$_POST['student']); $subject = mysqli_real_escape_string($con,$_POST['subject']); $hobby = mysqli_real_escape_string($con,$_POST['hobby']); $sql="INSERT INTO class (name,address,student,subject,hobby) VALUES ('$name','$address','$student','$subject''$hobby')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } header("Location: list.php"); mysqli_close($con); exit; ?> 我希望在从下拉列表中选择多个值后,它们应该保存在具有名为class的表的数据库中.表名为class的视图是 id name address student subject hobby 1 a s t y j 2 b d i g d 问题是,虽然我能够选择多个值,但只有单个值存储在数据库中 P.S我想我应该以更好的方式解释我的问题,所以我更新了我的帖子 解决方法
将值存储在select选项中的数组中
echo "<select class='form-control' name='student[]' multiple>"//it will store selected value in array 在循环内运行查询 foreach ($_POST['student'] as $students) { $student = mysqli_real_escape_string($con,$students);//use mysqli escape here $sql="INSERT INTO class (students) VALUES ('$student')"; } 在关闭表单之前和while循环之后添加此行 <input type="submit" name="submit" value="submit"> 并记住,当你使用mysqli时使用bindparam以及mysqli不会自动保护你. 检查此链接MySQL vs MySQLi when using PHP (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将使用FPDF php库创建的PDF保存在MySQL blob字段中
- 解析Ubuntu下crontab命令的用法
- php – 根据参数值Yii重写路由
- php – 使用方法参数indention的Netbeans自动格式问题
- PHP – Zend说避免魔法方法?
- Codeigniter通过SimpleXML将xml转换成对象的方法
- PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Ex
- Warning: session_destroy() : Trying to destroy uninitia
- php – Zend setElementsBelongTo()对子表单元素的影响
- scala学习之apply