我想从 SweetAlert 类中添加一条警报消息,但是当一切正确并且我想显示消息/弹出窗口时,它会告诉我以下错误:
致命错误:调用未定义函数 swal()
使用页面https://sweetalert.js.org/guides/我已成功插入一条成功的警报消息“成功”。
swal("¡OK!", "¡Teléfono modificado correctamente!", "success");
我有错误,因为我在swal()
调用 HTML 中的相应库之前声明了head
单击“修改”应触发警报swal()
。
代码:
<?php
header('Content-Type: text/html; charset=UTF-8');
//Por defecto no mostraremos el mensaje.
$mostrar = false;
//Si pulsamos el botón "Modificar"...
if(isset($_POST["modificar"])){
$telefono = $_POST["telefono"];
//Llamamos al método "modificarCliente" y le pasamos el parámetro (teléfono).
BD::modificarCliente($cliente, $telefono);
//Si debemos mostrar el mensaje, la estructura es la siguiente.
$mostrar = ["¡OK!", "¡Teléfono modificado correctamente!", "success"];
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Panel del cliente</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
</head>
<body>
<div id="menu_cliente">
<ul id="menu_horizontal">
<li class="nueva" id="nueva"><a class="active" href="menu_cliente.php?nueva=1#nueva">NUEVA OPINIÓN</a></li>
<li class="ver" id="ver"><a href="menu_cliente.php?ver=1#ver">VER OPINIONES</a></li>
<li class="eliminar" id="eliminar"><a href="menu_cliente.php?eliminar=1#eliminar">ELIMINAR OPINIÓN</a></li>
<li class="datos_cliente" id="datos_cliente"><a href="menu_cliente.php?datos_cliente=1#datos_cliente">DATOS PERSONALES</a></li>
</ul>
<div id="cuerpo_body">
<?php
//Si pulsamos el link "Datos personales"...
if(isset($_GET["datos_cliente"])){
//Obtengo todos los datos del cliente.
$objeto_cliente = BD::obtenerCliente($cliente); ?>
<form action="menu_cliente.php?datos_cliente=1" name="miformulario" id="miformulario" method="POST" class="form-register" onsubmit="return validar_telefono();">
<h2 class="form-titulo">MODIFICAR DATOS</h2>
<div class="contenedor-inputs">
<input type="text" name="telefono" id="telefono" maxlength="9" class="input-2" value="<?php echo $objeto_cliente->getTelefono();?>" onkeypress="return soloNumeros(event);">
<br/>
<input type="submit" value="Modificar" name="modificar" class="registrar"/>
</div>
</form>
<?php
}
?>
</div>
<?php
//Si hemos definido un contenido para ser mostrado, lo utilizamos...
if ($mostrar !== false) {
?>
<script language="text/javascript">
swal(<?= json_encode($mostrar[0]) ?>, <?= json_encode($mostrar[1]) ?>, <?= json_encode($mostrar[2]) ?>);
</script>
<?php
}
?>
</div>
</body>
</html>
如果我将按钮代码放在if(isset($_POST["modificar"])){
之后<input type="submit" value="Modificar" name="modificar" class="registrar"/>
,它会向我显示,alert()
但它不会管理执行的操作,直到我再次按下“修改”按钮。要进行第一次修改,您需要点击两次“修改”。可能的解决方案是什么?
您将 PHP 代码与 Javascript 代码混合在一起,因此 PHP 没有定义这样的函数。
解决问题的一种方法是在文档末尾推迟通话,如下所示:
这样,将生成必要的 Javascript 代码以仅在需要时显示警报。我曾经
json_encode
安全地将 PHP 数据转换为 Javascript 数据。