如果else语句与Ajax无法正常工作

时间:2018-01-20 12:54:56

标签: php jquery mysql ajax

我在管理区域,我有一个表单来创建管理员,用户(MySQL上的唯一ID),名称和密码,表格:

<div class="box">
    <div class="box-header with-border">
        <h3 class="box-title">Crear Administrador</h3>
    </div>
    <div class="box-body">
            <form role="form" name="crear-admin" id="crear-admin" method="post" action="insertar-admin.php">
              <div class="box-body">

                    <div class="form-group">
                          <label for="usuario">Usuario</label>
                          <input type="text" class="form-control" id="usuario" name="usuario" placeholder="Usuario">
                    </div>

                    <div class="form-group">
                          <label for="nombew">Nombre</label>
                          <input type="text" class="form-control" id="nombew" name="nombre" placeholder="Tu nombre">
                    </div>

                    <div class="form-group">
                          <label for="contraseña">Contraseña</label>
                          <input type="password" class="form-control" id="contraseña" name="contraseña" placeholder="Contraseña para iniciar sesión">
                    </div>

              </div>
              <!-- /.box-body -->

              <div class="box-footer">
                <input type="hidden" name="agregar-admin" value="1">
                <button type="submit" class="btn btn-primary">Añadir</button>
              </div>
            </form>
    </div>
    <!-- /.box-body -->
</div>

我使用 insertar-admin.php 插入db并获取JSON,if语句已插入,respuesta = 'exito',如果没有,respuesta = 'error',这是第一个问题,当插入到数据库中是正确的,它可以正常工作,但是当没有时,我无法得到其他消息,尝试使用其他选项,affected_rows$result = $stmt->execute();为真或假布尔,但我不能得到假,这是代码:

<?php

if (isset($_POST['agregar-admin'])) {

    $nombre = $_POST['nombre'];
    $usuario = $_POST['usuario'];
    $password = $_POST['contraseña'];

    $opciones = array(
        'cost' => 12
    );
    $password_hashed = password_hash($password, PASSWORD_BCRYPT, $opciones);


    try {
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        include_once 'funciones/funciones.php';
        $stmt = $conn->prepare("INSERT INTO admins (nombre, usuario, password) VALUES (?,?,?)");
        $stmt->bind_param("sss", $nombre, $usuario, $password_hashed);
        $stmt->execute();
        $id_registro = $stmt->insert_id;
        if ($id_registro > 0) {
            $respuesta = array(
                'respuesta' => 'exito',
                'id_admin' => $id_registro
            );
        } else {
            $respuesta = array(
                'respuesta' => 'error',
            );
        }
        $stmt->close();
        $conn->close();
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
    }
}

这会发送到 admin-ajax.js ,使用 SweetAlert2 为用户生成视觉响应,这是代码:

$(document).ready(function() {
    $('#crear-admin').on('submit', function(e) {
        e.preventDefault();

        var datos = $(this).serializeArray();

        $.ajax({
            type: $(this).attr('method'),
            data: datos,
            url: $(this).attr('action'),
            dataType: 'json',
            success: function(data) {
                var resultado = data;
                if (resultado.respuesta == 'exito') {
                    swal(
                          'Correcto!',
                          'El administrador se creó correctamente!',
                          'success'
                        )
                } else {
                    swal(
                          'Error',
                          'Hubo un error!',
                          'error'
                        )
                }
            }
        })

    });
});

正确插入即可,我收到正确的消息并插入,但出现错误时,我什么都没得到,我该如何解决?

0 个答案:

没有答案