【问题标题】:PHP call Javascript function but don't wait responsePHP调用Javascript函数但不等待响应
【发布时间】: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
              } 
          })
        }

【问题讨论】:

标签: javascript php sweetalert sweetalert2


【解决方案1】:

由于 PHP 是一种服务器端语言,而 Javascript 是一种客户端语言,您可能会遇到一些时间问题。您在 php 中的 echo 是您的文档将生成的第一行。当您在浏览器中检查页面的源代码时,您会看到这一点。

我认为这里的问题可能是您调用 ChangeOk('produto') 太快了。当您已经准备好使用 php 从 echo 调用它时,您的库和 javascript 函数可能尚未完全加载。如果是这种情况,告诉 Javascript 它需要在加载所有代码后运行调用可能会有所帮助。

echo "<script> window.addEventListener('load', ChangeOk('produto')); </script>";

【讨论】:

    猜你喜欢
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多