У меня есть таблица, извлекающая всю клиентскую информацию из базы данных, один из тегов <th>
содержит ссылку для редактирования, каждая ссылка содержит уникальный идентификатор, соответствующий указанному c клиенту этой строки. что-то вроде этого:
<a class="modal-trigger" href="#edit?id=<?php echo $result['idClients']; ?>"><i class="material-icons">edit</i></a>
часть foreach
l oop, которая отображает эту таблицу. У меня есть div
, содержащая в себе содержимое modal
, в модальной форме у меня есть форма для обновить базу данных.
l oop создает форму редактирования (модальную) для каждого результата, что приводит к большому количеству кода. Я хотел бы найти способ создать div
только после нажатия на значок редактирования на исходная таблица, чтобы сохранить код отображения на сайте. Пожалуйста, исправьте меня, если я ошибаюсь, и это правильный путь.
Спасибо!
index page:
<div class="row">
<div class="col s12 m12">
<div id="ClientViewer" class="card">
<div class="card-title">
<button id="button" type="button" name="button" class="waves-effect waves-gray btn-flat"><i class="material-icons">refresh</i></button>
<span>title</span>
</div>
<div class="card-content">
<table class="striped highlight">
<thead>
<tr>
<th>Client Name</th>
<th>field</th>
<th>field</th>
<th>field</th>
<th>field</th>
<th>edit</th>
</tr>
</thead>
<tbody>
<?php
foreach ($results as $result) {
?>
<tr>
<td><?php echo $result['clientNameA']. ' and ' .$result['clientNameB']; ?></td>
<td><?php echo $result['eventLocation']; ?></td>
<td><?php echo $result['eventDate']; ?></td>
<td><?php echo $result['clientPackage']; ?></td>
<td style="color:
<?php
$this->checkStatment($result['clientStatus'],'active,'green');
$this->checkStatment($result['clientStatus'],'temp','#961cf3');
$this->checkStatment($result['clientStatus'],'archive,'red');
;?>;"><?php echo $result['clientStatus']; ?></td>
<td>
<a class="modal-trigger" href="#edit?id=<?php echo $result['idClients']; ?>"><i class="material-icons">edit</i></a>
</td>
</tr>
<?php
include $_SERVER['DOCUMENT_ROOT']. '/admin/resources/pages/_updateclient.php';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
_updateclient. php page:
<div id="edit?id=<?php echo $result['idClients']; ?>" class="modal">
<div class="modal-content">
<h4></h4>
<form id="newclient" class="" action="/admin/resources/php/updateClient" method="post" novalidate="novalidate">
<div class="row">
<input type="hidden" name="idClients" value="<?php echo $result['idClients']; ?>" class="validate">
<div class="input-field col s12 m6">
<input name="clientNameA" type="text" value="<?php echo $result['clientNameA']; ?>" class="validate">
<label for="clientNameA"></label>
</div>
<div class="input-field col s12 m6">
<input name="clientNameB" type="text" value="<?php echo $result['clientNameB']; ?>" class="validate">
<label for="clientNameB"></label>
</div>
<div class="input-field col s12 m6">
<input name="clientEmail" type="email" class="validate " value="<?php echo $result['clientEmail']; ?>">
<label for="clientEmail"></label>
</div>
<div class="input-field col s12 m6">
<input type="text" name="eventLocation" class="autocomplete" value="<?php echo $result['eventLocation']; ?>">
<label for="eventLocation"></label>
</div>
<div class="input-field col s12 m6">
<input name="clientPhone" type="tel" class="validate " value="<?php echo $result['clientPhone']; ?>" >
<label for="clientPhone"></label>
</div>
<div class="input-field col s12 m6">
<input name="eventDate" type="text" class="datepicker" value="<?php echo $result['eventDate']; ?>">
<label for="eventDate"></label>
</div>
<div class="input-field col s12 m6">
<input name="eventGuests" type="number" class="validate " value="<?php echo $result['eventGuests']; ?>">
<label for="eventGuests"></label>
</div>
<div class="input-field col s12 m6">
<input type="hidden" name="clientStatus" value="">
<select class="browser-default" name="clientStatus" id="clientStatus">
<option <?php $this->checkStatment($result['clientStatus'],'active,'selected'); ?> value="active">active</option>
<option <?php $this->checkStatment($result['clientStatus'],'temp,'selected'); ?> value="temp">temp</option>
<option <?php $this->checkStatment($result['clientStatus'],'archive,'selected'); ?> value="archive">archive</option>
</select>
</div>
<div class="input-field col s12 m6">
<select class="browser-default" name="clientPackage" id="clientPackage">
<option <?php $this->checkStatment($result['clientPackage'],'polo,'selected'); ?> value="polo">polo</option>
<option <?php $this->checkStatment($result['clientPackage'],'plus,'selected'); ?> value="plus">plus</option>
<option <?php $this->checkStatment($result['clientPackage'],'plat,'selected'); ?> value="plat">plat</option>
</select>
</div>
<button type="submit" name="submit" class="button button-default-outline full-width">Update</button>
</form>
<a href="#!" class="modal-close waves-effect waves-green btn-flat">close</a>
</div>
</div>
</div>
Возможный ответ:
<a data-target="updateClient" href="#updateClient?cs=<?php echo $result['clientStatus'].'&cp='.$result['clientPackage']; ?>" class="modal-trigger waves-effect waves-light"
data-idclients="<?php echo $result['idClients']; ?>"
data-clientnamea="<?php echo $result['clientNameA']; ?>"
data-clientnameb="<?php echo $result['clientNameB']; ?>"
data-clientemail="<?php echo $result['clientEmail']; ?>"
data-eventlocation="<?php echo $result['eventLocation']; ?>"
data-clientphone="<?php echo $result['clientPhone']; ?>"
data-eventdate="<?php echo $result['eventDate']; ?>"
data-eventguests="<?php echo $result['eventGuests']; ?>"
data-clientstatus="<?php echo $result['clientStatus']; ?>"
><i class="material-icons">edit</i></a>
$('.modal').modal({
onOpenStart: function(modal, trigger) {
$(modal).find('input[name="idClients"]').val($(trigger).data('idclients'))
$(modal).find('input[name="clientNameA"]').val($(trigger).data('clientnamea'))
$(modal).find('input[name="clientNameB"]').val($(trigger).data('clientnameb'))
$(modal).find('input[name="clientEmail"]').val($(trigger).data('clientemail'))
$(modal).find('input[name="eventLocation"]').val($(trigger).data('eventlocation'))
$(modal).find('input[name="clientPhone"]').val($(trigger).data('clientphone'))
$(modal).find('input[name="eventDate"]').val($(trigger).data('eventdate'))
$(modal).find('input[name="eventGuests"]').val($(trigger).data('eventguests'))
$(modal).find('input[name="eventSuests"]').val($(trigger).data('eventstatus'))
var eventstatus = ($(trigger).data('eventstatus'));
$.post('resources/pages/_updateclient.php', {eventstatus: eventstatus});
}
Несколько вещей, я не могу передать val eventstatus
с $.post
. И второе: все значения в форме устанавливаются поверх метки поля ввода, решение?