繁体   English   中英

在以下情况下,为什么对PHP脚本进行的AJAX调用中多次显示成功警报消息?

[英]Why the success alert message is appearing many times in an AJAX call made to a PHP script in following scenario?

以下是两个代码块,每个代码块负责在各自的超链接onclick上对PHP文件进行AJAX调用:

<script language="javascript" type="text/javascript">

    $(".fixed").click(function(e) { 
        var action_url1 = $(this).attr('delhref');
        var qid = $(this).data('q_id');


        $(".fixed").colorbox({inline:true, width:666});

        $("#fixedPop_url").click(function(event) {
          event.preventDefault();
          $.get(action_url1, function(data) {
            alert("Question status updated successfully");
            $("#fix_"+qid).hide();
            $("#notfix_"+qid).show();
          });      
        });       

        $(".c-btn").bind('click', function(){
          $.colorbox.close();
        });
      });

      $(".notfixed").click(function(e) { 
        var action_url2 = $(this).attr('delhref');
        var qid = $(this).data('q_id');


        $(".notfixed").colorbox({inline:true, width:666});

        $("#notfixedPop_url").click(function(event) {
          event.preventDefault();
          $.get(action_url2, function(data) {
            alert("Question status updated successfully");
            $("#notfix_"+qid).hide();
            $("#fix_"+qid).show();
          });       
        });
        $(".c-btn").bind('click', function(){
          $.colorbox.close();
        });
      });
    </script>

现在,来自文件的PHP代码片段被写入下面,向其发出AJAX请求。 实际上,AJAX请求将转到的PHP文件名和所需传递的参数包含在变量action_url1 and action_url1 这些工作正常。 到现在为止,我都没有问题。 PHP代码也可以正常工作。

<?php
    $objQuestionIssue = new QuestionIssue;
    $op       = $_GET['op'];   

    switch( $op ) {
            case "fixed":
                $que_issue_data = $objQuestionIssue->UpdateQuestionIssueStatus($question_id, $op);

                die();          
                break;

            case "notfixed":
              $que_issue_data = $objQuestionIssue->UpdateQuestionIssueStatus($question_id, $op);

                die();          
                break;      
        } 
    ?>

但是我面临的问题是多次收到警报成功消息。 预期仅显示一次警报消息,但是在当前情况下,它将显示多次。 有人可以帮我纠正此问题吗?

您已嵌套点击处理程序-

你点击每次.fixed你要绑定一个新的单击处理#fixedPop_url 这就是为什么您的.get执行多次的原因

您可以使用.off()来解决此问题-

$("#fixedPop_url").off('click').on('click',function(event) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM