0

クリックされるたびにブートストラップモーダルをトリガーするリンククラスがあります。

     <a class="ptdel" href="#myModalx" role="link" data-toggle="modal" id="668" title='Delete'>x</a>
     <script type="text/javascript">
     jQuery(document).ready(function(){  
         $(".ptdel").click(function(){ 

            var pcid = $(this).attr('id');
            if(pcid >= 40){
                $("#myModalxLabel").html("Delete?");  //adds to modal display text
            }

            $("#modalButtonxy").addClass("del_"+pcid); //adds class to yes button 

         });
     });
     </script>

href="#myModalx" を使用すると、リンクをクリックするとモーダルがポップアップします。これはすでに Bootstrap で構成されています。

これは私のモーダルhtmlコードです...

 <pre>
  my modal id="myModalx"
  my modal header id="modalHeadx" 

  my Yes button id="modalButtonxy" data-dismiss="modal" aria-hidden="true" class="" onclick="yesDel(this);"

   my No button id="modalButtonxn" data-dismiss="modal" aria-hidden="true"

  </pre>

私の DOM 対応コードでは、はいボタンにクラスを追加して、クリックされたリンクの ID を取得できるようにします。

以下のJavaScript関数を正しく呼び出しています...アラートが発生しています...しかし問題は、それがajaxから発生しないことです。コンソールにログがありません。私は PHP フレームワークに Yii を使用しています...そして、ここの URL コードは私の他の ajax 呼び出しで機能します。

 function yesDel(thecl){
 //    alert("works");    


            var modalclass = thecl.attr('class');
            var pid = modalclass.split("_").pop();
            //should return true or false back from request
            $.ajax({
                url: '<?php echo CController::createUrl('/link/deletenow'); ?>',
                type: "POST",
                data: {linkid:pid,YII_CSRF_TOKEN: '<?php echo Yii::app()->request->csrfToken ?>'},
                dataType: 'text',
                success: function(data){  
                      if(!!data){

                         $("#flashmid").show();        
                         $("#flashmid").fadeIn(400).html('Delete Successful!');
                         $("#flashmid").fadeOut(400);  
                      }
                },
                error: function(xhr, textStatus, error){
                   console.log(xhr.statusText);
                   console.log(textStatus);
                   console.log(error);
                   alert("error in deleting");
                }
            });   
  }

あらゆる種類のトラブルシューティングを手伝ってください。データベースの変更を定期的にチェックすると、投稿は実際に機能します...しかし、クリックしてユーザーが削除するために「はい」を選択した後にこれを機能させる必要があります。

4

1 に答える 1

0

私はこれが一種の古い質問であることを知っています。しかし、私の問題は同じでした。

多分私たちの問題は、ボタンのデータ却下でした。フォーム内のすべてのデータが解放される可能性があると思いますが、よくわかりません。

私に関しては、この解決策はうまくいきました:

jquery 関数を使用してモーダル onclick を非表示にすると、すべて正常に機能しました。

$('#newBuildingSubmit').click(function(){

                                $('#newBuildingModal').modal('hide');

                               // AJAX CODE HERE

                            });

私のボタンは次のようになりました:

<button type="submit" id="newBuildingSubmit" class="btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Speichern</button>

私のボタンはモーダルの中にラップされていました。

遅い答えですが、同じ問題に直面している他の人の助けになるかもしれません:)。

于 2014-08-21T12:11:05.563 に答える