Попробуйте
$(document).ready(function() {
$('.ajax-link').click(function(event) {
$('#container').load($(this).attr('href'), function() {
$('#container').modal({
backdrop: true
});
});
event.preventDefault();
});
});
При этом используется метод .load () для загрузки содержимого в элемент container
, поэтому вам необходимо добавить новый элемент на странице: *Затем 1007 *
<div id="container" style="display:none"></div>
использует функцию обратного вызова для отображения диалога (.modal()
) с использованием контейнера.Поскольку вы возвращаете несколько <div>
s, вам необходимо добавить их в контейнер перед тем, как сделать это диалоговое окно.
Также добавлен параметр event
в функцию обратного вызова click
и использование protectDefault () вместо return false
.
Обратите внимание, что
$(document).ready(function() {
и
$(function() {
делают то же самое - вторая короткая рукадля первого.
Обновление
Если вы посмотрите документы для модального окна, вы увидите, что разметка должна быть
<div class="modal" id="myModal">
<div class="modal-body">
<div>Butter & nbsp; 45 & nbsp; grams & nbsp;</div>
<div>Flour & nbsp; 12 & nbsp; grams & nbsp;</div>
</div>
</div>
, тогда вы используете$('#myModal').modal(options)
, чтобы показать окно ....
Так что я предлагаю вам попробовать это, сначала отредактируйте ваш цикл PHP:
echo "<div class='modal-body'>";
while( $row = $stmt->fetchObject() ){
echo "<div>".$row->Ingredient." ".$row->Quantity." ".$row->UoM." </div>";
}
echo "</div>";
это создаст тело окна ...тогда уже на вашей странице есть это:
<div id="modal-container" class="modal"></div>
и, наконец, ваш JavaScript:
$(document).ready(function() {
$('.ajax-link').click(function(event) {
$('#modal-container').load($(this).attr('href'), function() {
$('#modal-container').modal({
backdrop: true
});
});
event.preventDefault();
});
});
Тогда вы не дублируете id
s и не загружаете содержимое в уже существующий контейнер.