我有一个表,使用codeigniter显示数据库中的值。当我单击一行的按钮时,会出现一个模态,其中包含一个具有表格行值的表单。问题是,如果我单击第一行,第二行值将发送到模态,如果我单击第二行,则第三行值将发送到模态。我该如何解决这个问题?
<table>
<?php
foreach($EMPLOYEES as $employee) {
$employee = (object)$employee;
?>
<tr>
<td><?=$employee->id_acd;?></td>
<td><?=$employee->nombre;?></td>
<td><?=$employee->apellido;?></td>
<td>
<button data-toggle="modal"
data-target="#myModal"
data-employee-id="<?=$employee->id_acd;?>">
</button>
</td>
</tr>
<?php } ?>
</table>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form name="myModalTitle" id="myModalTitle" method="post" action="<?php
echo site_url('user_Authentication/user_login_process');?>">
<div>
<label>Nombre:</label>
<input name="nombre" value="{{nombre}}" disabled>
</div>
<div class="form-group">
<label>Apellido:</label>
<input type="text" class="form-control" name="apellido"
value="{{apellido}}" disabled>
</div>
<p>
<button> Enviar </button>
</p>
</form>
<script>
var employees = <?=
json_encode(
$EMPLOYEES
); ?>;
(function($){
var myModalTitle = $( '#myModalTitle' );
var myModalTitleText = myModalTitle.html();
var myModal = $( '#myModal' );
var btnOpenMyModal = $( '.btn-open-my-modal' );
btnOpenMyModal.on('click', function() {
var btn = $( this );
var currentEmployees = employees[parseInt( btn.data( 'employee-id' ) )];
myModalTitle.html(
.replace( '{{nombre}}', currentEmployees.nombre )
currentEmployees.telefono )
);
});
}(jQuery));
</script>
由此我想$EMPLOYEES
是一个索引数组。在大多数语言中,它是零索引的,这意味着第一个元素是$EMPLOYEES[0]
。
如果employee-id
只是数组的索引,则将+1
添加到此行:
var currentEmployees = employees[parseInt(btn.data('employee-id'))+1];
这称为逐一错误,非常常见。