jquery — передача данных php в материализованный модал

Я создаю всплывающее окно подтверждения с помощью материализация модов удалить конкретную запись, отображаемую на странице. У каждой записи есть своя собственная кнопка удаления, чтобы удалить вопрос, с которым связана запись. Там значение php $questionCnt это то, что относится к записи для удаления.

В настоящее время у меня есть рабочий метод для удаления выбранной записи, если это не в модальном. Моя проблема возникает, когда я пытаюсь $questionCnt данные к модалу. По умолчанию он возвращается к первому значению массива с индексом 0. Я прокомментировал это в своем нерабочем коде, где именно это происходит.

Таким образом, вместо удаления выбранной записи будет удалена первая запись независимо от выбранной записи.

инициализация

$(document).ready(function(){
$('.modal-trigger').leanModal();
});

Рабочий раствор без модального

    <form method="link" id="deleteQuestionForm" action="{{ url('api/question/deletequestiondata/') }}">
<input type="hidden" id="questionToDelete" value=<?php echo '"' .  $questionData[$questionCnt] . '"'; ?> name = 'questionID'>
<input type="hidden" id="urlForSurvey" value="{{$surveyName}}"  name = 'urlForSurvey'>
<button class="btn waves-effect waves-light" value="+" id="deleteQuestionButton" name="action" onclick="document.getElementById('deleteQuestionForm').submit();">
<input type="submit" value="Delete Question">
</button>
</form>

Нерабочее решение в модале

@foreach($questiondata as $d)
<?php $questionCnt++; ?>
<div class="card white darken-1 hoverable">
<div class="card-content black-text">
<span class="card-title"><b>{{$d->questionTxt}}</b></span>
<div class="card-action">
<div class="button right">
<button class="waves-effect waves-light btn" >
<i class="material-icons left">mode_edit</i>Edit
</button>
<button class="waves-effect waves-light btn modal-trigger red" href="#deletePopUP">
<i class="material-icons">delete</i>
</button>
<?php echo $questionCnt ; ?>       <!-- Will print the correct index -->
<div id="deletePopUP" class="modal">
<?php echo $questionCnt ; ?>   <!-- Will always print the first index -->
<div class="modal-content">
<h4 align="center">Are you sure you wish to delete this question?</h4>
</div>
<div class="modal-footer" align="center">
<form method="link" id="deleteQuestionForm" action="{{ url('api/question/deletequestiondata/') }}">
<input type="hidden" id="questionToDelete" value=<?php echo '"' .  $questionData[$questionCnt] . '"'; ?> name = 'questionID'>
<input type="hidden" id="urlForSurvey" value="{{$surveyName}}"  name = 'urlForSurvey'>
<button class="btn waves-effect waves-light" value="+" id="deleteQuestionButton" name="action" onclick="document.getElementById('deleteQuestionForm').submit();">
<input type="submit" value="Delete Question">
</button>
</form>
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">No, Return
</a>
</div>
</div>
</div>
</div>
</div>
</div>@endforeach

2

Решение

Хм, мне все еще интересно, что за массив $questionData выглядит (есть в нем) …die('<pre>'.print_r($questionData, 1)); решил бы мое любопытство.

Тем не менее, есть небольшая ошибка в

 <input type="hidden" id="questionToDelete" value=<?php echo '"' .  $questionData[$questionCnt] . '"'; ?> name = 'questionID'>

которая может быть корнем вашей проблемы. Вы видите, вы перебираете $questiondata НЕ $questionData (обратите внимание на чувствительность к регистру здесь). Более того, поскольку вы установили текущий цикл в $d в вашем foreach вы должны использовать это как (или что-то вроде) это (я не могу сказать наверняка, так как вы держите содержимое данных $questiondata как секрет, пока

 <input type="hidden" id="questionToDelete" value="<?php echo $d['id']; ?>" name="questionID">

(Я также убрал некоторые цитаты, чтобы сделать его более разборчивым).

0

Другие решения

Проблема была решена.

Чтобы передать значение php в модал, нужно добавить его в hrefобе кнопки, которые активируют модальный и настроить id модального тега.

Код, который был изменен для решения проблемы

<button class="waves-effect waves-light btn modal-trigger red"href="#deletePopUP<?php echo $questionCnt?>">
<i class="material-icons">delete</i>
</button>

<!-- Are you sure prompt -->
<div id="deletePopUP<?php echo $questionCnt?>" class="modal">
<div class="modal-content">

<!-- Rest of modal content stayed the same -->
0

По вопросам рекламы [email protected]