将php数据传递给实体模式

时间:2016-12-01 03:20:31

标签: php jquery materialize

我正在使用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

2 个答案:

答案 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 -->