我正在使用materializecss modals创建一个确认弹出窗口,以删除页面上显示的特定记录。每条记录都有自己的删除按钮,用于删除记录所连接的问题。 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
答案 0 :(得分:0)
嗯,我仍然好奇数组$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">
(我还清理了一些引用以使其更清晰)。
答案 1 :(得分: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 -->