Я пытаюсь использовать modal как простое средство для пользователей редактировать данные в MySQL db. Похоже, что только первая строка, полученная в моей инструкции SELECT, доступна для модальной, и я не понимаю, почему. Другими словами, представьте таблицу с несколькими столбцами, первая из которых является именем клиента. Моя цель состоит в том, чтобы иметь возможность щелкнуть имя, показать модальную форму, а затем передать результаты этой формы для обновления db с помощью PHP. Независимо от того, какое имя я нажимаю, передаются только значения, относящиеся к первой результирующей строке.
Таблица «Элемент» включает информацию для всех строк, которые будут присутствовать в таблице.
$personID
передается через GET
и является средством выбора клиентов конкретного сотрудника.
Модальный div
включен в предложение PHP while
.
Форма, содержащаяся в модуле, передает информацию базовому скрипту обновления PHP.
Большое спасибо, Майк
PHP Выберите Stmt:
<?php $query = "SELECT * FROM item WHERE personID = $personID"; $result = mysql_query($query); while($info=mysql_fetch_array($result)){ $itemID = $info['itemID']; ?>
в<?php $query = "SELECT * FROM item WHERE personID = $personID"; $result = mysql_query($query); while($info=mysql_fetch_array($result)){ $itemID = $info['itemID']; ?>
о<?php $query = "SELECT * FROM item WHERE personID = $personID"; $result = mysql_query($query); while($info=mysql_fetch_array($result)){ $itemID = $info['itemID']; ?>
Link (один из многих, я сократил этот раздел):
<div class='row-fluid'> <div class='span3'> <a href="#customerModal" data-toggle="modal"><?php echo($info['itemCustomer']); ?></a> </div> </div>
Modal:
<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel"><?php echo($info['itemID']); ?></h3> </div> <div class="modal-body"> <form action='pipelineEdit.php' method='post'> <input placeholder='Customer Name' style='width:50%' type='text' name='editValue' id='editValue'> <input type='hidden' value='itemCustomer' name='editField' id='editField'> <input type='hidden' value='<?php echo($info['itemID']); ?>' name='itemID' id='itemID'> <input type='hidden' value='<?php echo($personID); ?>' name='personID' id='personID'> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> <button class="btn btn-primary">Save changes</button> </div> </form> </div>
Конец PHP while
идет после модального:
<?php } ?>
Вы печатаете несколько div с одинаковым ID = customerModal
Идентификаторы должны быть уникальными, поэтому ссылка откроет только первый модальный формат, напечатанный в цикле.
Изменить:
<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
чтобы:
<div id="customerModal<?php echo $info['itemID']; ?>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
а также:
<a href="#customerModal" data-toggle="modal">
чтобы:
<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">
С помощью
while($info=mysql_fetch_array($result)){ $itemID = $info['itemID'];
вwhile($info=mysql_fetch_array($result)){ $itemID = $info['itemID'];
оwhile($info=mysql_fetch_array($result)){ $itemID = $info['itemID'];
означает, что вы продолжаете присваивать $ itemId. В конце $ itemId содержит только последнее присвоенное значение.
Ваш модальный идентификатор идентифицируется с идентификатором. В jQuery будет ссылаться только первый элемент DOM с этим идентификатором. Чтобы указать правильный модальный, вы можете добавить идентификатор базы данных к идентификатору элемента, например:
<div id="customerModal<?php echo $info['itemID']; ?>"
Ссылка должна также иметь такую добавку:
<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">
Для получения дополнительной информации, используя селектор ID, смотрите здесь документацию jQuery.