【发布时间】:2021-11-21 20:20:16
【问题描述】:
我正在使用 Laravel 8 框架。
使用查询从表中获取值并将其显示在复选框中,但是当我选择多个时,它只显示单个,而不是多个。
这是带有查询功能的 Blade PHP 代码。
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Students:</strong>
<div style="margin-top: 5px" >
<?php $conn = new mysqli('localhost', 'root', '', 'rp') or die ('Cannot connect to db');
$result = $conn->query("select users.id, users.name from users, model_has_roles where model_has_roles.model_id=users.id and model_has_roles.role_id=14;
");
echo "<html>";
echo "<body>";
while ($row = $result->fetch_assoc()) {
unset($id, $name);
$id = $row['id'];
$name = $row['name'];
echo '<form><input type=checkbox name="student_id[]" value="'.$id.'">'.$name.'</form>'; }
//echo "</select>";
echo "</body>";
echo "</html>";?>
他是我在Controller中的功能码
public function update(Request $request, Ticket $ticket){
request()->validate([
'gpname' => 'required',
'detail' => 'required',
'semester' => 'required',
'gender' => 'required',
// 'status',
// 'Assigned',
]);
$users= Auth::user();
$rr= $users->roles->pluck('name')->toArray();
// dd($users->id);
// $data= $request->all();
//$ticket = new Ticket;
if($rr[0]=='Admin'){
$data= $request->all();
//dd($data['Assigned']) ;
$ticket->gpname=$data['gpname'];
$ticket->detail=$data['detail'];
$ticket->semester=$data['semester'];
$ticket->gender=$data['gender'];
//dd("hhh");
$student_id = array("student_id");
if(isset($_POST['submit'])){
if(!empty($_POST['student_id'])){
$student_id = $_POST['student_id'];
foreach($student_id as $id){
// echo $id.'<br/>';
dd($data['student_id']);
}
}
}
dd($data['student_id']);
//dd( $data['student_id[]']);
//$ticket->studentnames=$users->empid;
$ticket->user_id=$users->id;
//$ticket->Assigned=$data['Assigned'];
$ticket->save();
如你所见,如果我将dd($data['student_id']); 作为评论,它永远不会出现在foreach() 中的前一个
如何从复选框中获取多个值?
【问题讨论】:
-
你为什么在 Laravel 中使用 mysqli?
-
因为我使用的是 localhost xampp 服务器
-
这不是我的问题的答案。您正在使用的服务器堆栈与它无关。使用 Laravel 时不要使用 mysqli。