php - Fancybox modal,无法从数据库填充输入字段
问题描述
我在 php codeigniter 中有一个项目,从数据库中获取数据,并使用 foreach 循环在表中创建行,每行都有一个编辑按钮,用于打开 fancybox 模式,在该模式中,我有 2 个输入字段,名字我尝试使用数据库中的当前值填充它们的姓氏,在我尝试的值部分中value="<?php echo $row->first_name ?>
,问题是所有行都获得相同的值,模式没有为每一行获取正确的数据。
相关代码:
<a data-fancybox data-touch="false" href="#modal" class="btn btn-secondary" style=" margin-bottom:5px;" id="<?php echo $row->id; ?>" type="button" name="button">Edit</a>
<div id="modal">
<div class="content">
<div class="container-fluid">
<div class="row">
<form method="post" action="<?php echo base_url()?>index.php/welcome/formValidation">
<div class="form-row">
<div class="col-12 mb-3">
<h3 class="mb-3">Modifica Rapid:</h3>
<label for="nume">Nume:</label>
<input type="text" class="form-control" id="nume" placeholder="Nume" name="nume" value="<?php echo $row->last_name ?>"required>
</div>
<div class="col-12 mb-3">
<label for="prenume">Prenume</label>
<input type="text" class="form-control" id="prenume" placeholder="Prenume" name="prenume" value="<?php echo $row->first_name ?>" required>
</div>
<div class="col-12 mb-3 text-center">
<button style="width:150px;height:50px;" class="btn btn-warning" type="submit">Modifica</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
解决方案
您需要做的是,将 $row id 附加到模态 css id,以便每个模态都是唯一的。
<a data-fancybox data-touch="false" href="#modal<?=$row->id;?>" class="btn btn-secondary" style=" margin-bottom:5px;" id="<?php echo $row->id; ?>" type="button" name="button">Edit</a>
<div id="modal<?=$row->id;?>">
<div class="content">
<div class="container-fluid">
<div class="row">
<form method="post" action="<?php echo base_url()?>index.php/welcome/formValidation">
<div class="form-row">
<div class="col-12 mb-3">
<h3 class="mb-3">Modifica Rapid:</h3>
<label for="nume">Nume:</label>
<input type="text" class="form-control" id="nume" placeholder="Nume" name="nume" value="<?php echo $row->last_name ?>"required>
</div>
<div class="col-12 mb-3">
<label for="prenume">Prenume</label>
<input type="text" class="form-control" id="prenume" placeholder="Prenume" name="prenume" value="<?php echo $row->first_name ?>" required>
</div>
<div class="col-12 mb-3 text-center">
<button style="width:150px;height:50px;" class="btn btn-warning" type="submit">Modifica</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
所以改变
<a data-fancybox data-touch="false" href="#modal" class="btn btn-secondary" style=" margin-bottom:5px;" id="<?php echo $row->id; ?>" type="button" name="button">Edit</a>
至
<a data-fancybox data-touch="false" href="#modal<?=$row->id;?>" class="btn btn-secondary" style=" margin-bottom:5px;" id="<?php echo $row->id; ?>" type="button" name="button">Edit</a>
通过将行 id 添加到 css 以获得唯一的模式 id,如果不是所有链接将只调用最后一个模式。模态变化也有同样的变化
<div id="modal">
至
<div id="modal<?=$row->id;?>">
推荐阅读
- javascript - Angular:从formArray获取数据并将其发送到api
- python - Python - 使用临时安全凭证创建 AWS 签名
- flutter - StateNotifierProvider 在应用程序重新启动之间不保持状态
- angular - 如何使用 ngrx/component-store 示例在初始化时不发出事件?
- java - 如何简单地制作多个 javafx 事件处理程序?
- system.text.json - System.Text.Json 反序列化并获取属性值
- android - 如何将此字符串拆分回列表?使用科特林
- reactjs - React-Redux 条件变量
- javascript - 如何本地化来自 html datetime-local 输入的输入
- javascript - 无法将特定类型作为参数分配给泛型