【发布时间】:2022-01-11 20:56:53
【问题描述】:
我正在用 PHP 编写代码,其中 if 条件的响应使用 SweetAlert2 调用 Javascript 函数。 基本上,当一个寄存器被更新时,按钮调用一个 PHP 函数,如果它成功运行,这个函数调用一个 Javscript 函数。这个 javascript 函数是一个 SweetAlert2,它显示一条消息,应该等待单击“确定”按钮将用户重定向到另一个 URL。
问题是消息出现的速度非常快,并且没有等待点击;它会自行关闭。重定向也不起作用。
我已经从 PHP 代码中尝试过这个 javascript 函数,它运行良好。
我该如何解决?
PHP 代码
function UpdateReg() {
$Titulo = $_REQUEST['f_titulo'];
$Descricao = $_REQUEST['f_desc'];
$Valor = $_REQUEST['f_valor'];
$cod = $_GET['cod'];
if ($GLOBALS['$conexao']->connect_error) {
die("Falha de Conexão: " . $GLOBALS['$conn']->connect_error);
}
$sql = "UPDATE produtos set titulo = '$Titulo', descricao = '$Descricao', valor = '$Valor', WHERE cod_produto = $cod";
if (mysqli_query($GLOBALS['$conexao'], $sql)) {
echo "<script>ChangeOk('produto')";
} else {
echo "Erro: " . $sql . "<br>" . mysqli_error($GLOBALS['$conexao']);
}
mysqli_close($GLOBALS['$conexao']);
}
}
Javascript
function ChangeOk(tipo)
{
Swal.fire({
title: "Feito!",
text: "Registro alterado com sucesso",
icon: 'success',
showConfirmButton: true
}).then((result) => {
if (result.isConfirmed) {
window.location = "home.php?tipo=" + tipo
}
})
}
【问题讨论】:
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!
标签: javascript php sweetalert sweetalert2