如何在ajax成功方法()中显示引导成功消息? - javascript

我正在使用以下jQuery / Ajax方法来验证表单。我正在将json数据传递到名为add.php的php文件中。现在,如果add.php页面发现任何错误,则显示错误消息,否则显示成功消息。

现在,在ajax成功方法中,如果没有错误,我想显示引导成功消息class,否则显示错误消息class

在此行:

$('#form_result').append('<p class="alert alert-danger">'+value+'</p>');

现在,我无法确定如何检查结果是否成功。

jQuery / Ajax代码:

<script type="text/javascript">
    $(document).ready(function() {
        $("#add_zone").submit(function(e) {
            e.preventDefault();
            $.ajax({
                url : 'add',
                data : $(this).serialize(),
                dataType : 'json',
                type : 'POST',
                beforeSend : function () {
                    $("#submit_button").val("Wait...");
                },
                success : function ( result ) {
                    $("#submit_button").val("Add New Zone");
                    $('#form_result').html('');
                    $.each( result, function( key, value ) {        
                        if(key !== 'error')  {
                            $('#form_result').append('<p class="alert alert-danger">'+value+'</p>');
                        }
                    });                               
                },
            });
        });        
    });
</script>

add.php页面

if(isset($_POST['form_name']) && $_POST['form_name'] == "zone") {
    if(verifyForm('zone', 'add')) { 
        $msg = array();
        $msg['error'] = false;      
        $zone_name = validate_data($_POST['zone_name']);
        $remark = validate_data($_POST['remark']);
        $errors = array();
        $check = mysqli_query($conn, "SELECT zone_name FROM zone WHERE uid ='$uid' AND zone_name = '$zone_name' ");
        $num_check = mysqli_num_rows($check);

        if(isset($zone_name, $remark)) {
            if(empty($zone_name)) {
                $msg[] = 'Zone name required';
                $msg['error'] = true;
            } elseif($num_check > 0 ) {
                $msg[] = 'Zone name already exists, choose another name';
                $msg['error'] = true;
            }

            if(!empty($errors)) {
                  $msg[] = '<div class="alert alert-danger">';
                      $msg[] = '<strong>OPPS! Correct the following error(s):</strong><br/>';
                      foreach($errors as $er) {
                          $msg[] = $er.'.<br/>';
                          $msg['error'] = true;
                      }
                  $msg[] = '</div>';                
              }

              if(empty($errors) && $msg['error'] === false) {
                $insert = mysqli_query($conn, "INSERT INTO zone (zone_name, uid, remark) VALUES('$zone_name', '$uid', '$remark') ");
                if($insert) {
                    $msg[] = 'New zone added.';                 
                } else {
                    $msg[] = "Can't add new zone.";
                    $msg['error'] = true;   
                }
              }
        }       
        echo json_encode($msg); 
    }   
}

参考方案

不要将输出与错误状态混合:

<?php
/**
*/
if(isset($_POST['form_name']) && $_POST['form_name'] == "zone") {
    if(verifyForm('zone', 'add')) {
        $msg = array();
        $msg['error'] = false;
        $msg['body']  = [];
        $zone_name = validate_data($_POST['zone_name']);
        $remark = validate_data($_POST['remark']);
        $errors = array();
        $check = mysqli_query($conn, "SELECT zone_name FROM zone WHERE uid ='$uid' AND zone_name = '$zone_name' ");
        $num_check = mysqli_num_rows($check);

        if(isset($zone_name, $remark)) {
            if(empty($zone_name)) {
                $msg['body'][] = 'Zone name required';
                $msg['error'] = true;
            } elseif($num_check > 0 ) {
                $msg['body'][] = 'Zone name already exists, choose another name';
                $msg['error'] = true;
            }

            if(!empty($errors)) {
                $msg['body'][] = '<div class="alert alert-danger">';
                $msg['body'][] = '<strong>OPPS! Correct the following error(s):</strong><br/>';
                foreach($errors as $er) {
                    $msg['body'][] = $er.'.<br/>';
                    $msg['error'] = true;
                }
                $msg['body'][] = '</div>';
            }

            if(empty($errors) && $msg['error'] === false) {
                $insert = mysqli_query($conn, "INSERT INTO zone (zone_name, uid, remark) VALUES('$zone_name', '$uid', '$remark') ");
                if($insert) {
                    $msg['body'][] = 'New zone added.';
                } else {
                    $msg['body'][] = "Can't add new zone.";
                    $msg['error'] = true;
                }
            }
        }
        $msg['body'] = implode('',$msg['body']);
        echo json_encode($msg);
    }
}
?>
<script type="text/javascript">
    $(document).ready(function() {
        $("#add_zone").submit(function(e) {
            e.preventDefault();
            $.ajax({
                url : 'add',
                data : $(this).serialize(),
                dataType : 'json',
                type : 'POST',
                beforeSend : function () {
                $("#submit_button").val("Wait...");
            },
                success : function ( result ) {
                $("#submit_button").val("Add New Zone");
                if (result.error) {
                    $('#form_result').append('<p class="alert alert-danger">'+result.body+'</p>');
                }
                else {
                    $('#form_result') . html(result.body);
                }
            },
            });
        });
    });
</script>

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

对ID为'abc%'的dom执行操作 - javascript

我想对ID为'abc%'的DOM进行一些操作<a id='abc1'></a> <a id='abc2'></a> <a id='abc3'></a> <a id='abc4'></a>…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…