【问题标题】:how to call jquery function after php if condition?php if条件后如何调用jquery函数?
【发布时间】:2014-12-19 12:03:11
【问题描述】:

我想在成功执行 php 插入查询后显示 jquery sweet alert.. 但是每当我尝试在 if 条件后调用 jquery 函数时,都不起作用..或在页面重新加载表单提交之前出现 1-2 秒的警报并立即消失..它仅适用于按钮 onclick 方法..

<html>
<head>
<script src="lib/sweet-alert.js"></script>
<link rel="stylesheet" href="lib/sweet-alert.css">
</head>

<body>
<form method="post">
  <label for="name">name</label>
  <input type="text" name="name" id="name" />
  <input type="submit" value="submit" name="submit" class="sub" id="sub" />

<?php
   $a=mysql_connect("localhost","root","");
   $a1=mysql_select_db("test",$a);

  if(isset($_POST['submit']))
  {
         $name=$_POST['name'];
         $i=mysql_query("insert into student (name) values ('$name')");
    if($i)
    {

        echo "<script>a();</script>";
    }
  }
 ?>

 <script type="text/javascript">
 function a(){
 swal("Here's a message!");
 };
</script>

</body>
</html>

【问题讨论】:

标签: javascript php jquery


【解决方案1】:

您正在尝试混合两种不兼容的语言,PHP 是服务器端,JQuery 是客户端。一旦您的浏览器显示页面,PHP 脚本就已经完成处理,因此您无法决定从 PHP 脚本与浏览器进行交互。

如果您想要这种功能,您需要从 javascript 页面使用 Ajax。

【讨论】:

  • 这太粗鲁了!也不是真的。鉴于响应在页面加载、重定向或 AJAX 请求之后被回显,您始终可以通过 PHP 通过 JS 回显响应!
  • 你能告诉我..如何使用 ajax??.我不知道 ajax
【解决方案2】:

将 javascript 函数声明放在您的 php 脚本之前。

<script type="text/javascript">
 function a(){
 swal("Here's a message!");
 };
</script>
<?php
   $a=mysql_connect("localhost","root","");
   $a1=mysql_select_db("test",$a);

  if(isset($_POST['submit']))
  {
         $name=$_POST['name'];
         $i=mysql_query("insert into student (name) values ('$name')");
    if($i)
    {

        "<script>a();</script>";
    }
  }
 ?>

【讨论】:

  • 它不起作用..插件的swal功能只能放在关闭body标签之前..
  • 把你的完整 php 文件放在这里。您的代码中没有包含插件
  • 正如@Ghost 所说,将echo 放在&lt;script&gt;a();&lt;/script&gt; 之前就像这样echo "&lt;script&gt;a();&lt;/script&gt;"
【解决方案3】:
<?php 
if($_REQUEST['submit']){
    $i = "yes";
    if($i == "yes"){
    echo "<script>alert('hiii');</script>";
    }
}
?>
<form action="" method="post">
<input type="submit" name="submit" value="submit">
</form>

【讨论】:

  • 我知道..alert 运行良好,但 jQuery 插件无法运行。我想使用 sweetalert jQuery 插件
  • 我认为与您的插件有冲突试试这个:在谷歌浏览器中并转到您想要查看效果的页面现在按 Ctrl+shift+j 并查看控制台检查是否有任何错误?或给我实时链接
  • 错误:未捕获的类型错误:无法读取 null 的属性“querySelector”
  • 查看 jquery 插件链接。tristanedwards.me/sweetalert.it 正在使用按钮,但我想在 php 插入查询后显示警报 ..使用 php 它不起作用。
【解决方案4】:

我有 1 个用于表单和警报的 demo.php 文件。以及用于 php 查询的 demo1.php 文件。 我必须为此使用 Ajax。 demo.php:

<html>
<head>
<script src="lib/sweet-alert.js"></script>
<link rel="stylesheet" href="lib/sweet-alert.css">
<script src="js/jquery-1.8.0.min.js"></script>
</head>

<body>
<form method="post" class="frm" id="myform" onSubmit="j1">
 <label for="name">name</label>
 <input type="text" name="name" id="name" />
 <input type="submit" value="submit" name="submit" class="sub" id="sub" />
</form>

 <script>

     function j1(){
     var query = $('#myform').serialize();
     var url = 'demo1.php';
     $.post(url, query, function (response) {

         swal({
    title: "Thank You!",
    type: "success",
    confirmButtonColor: '#DD6B55',
    confirmButtonText: 'Okay'
    },
    function(isConfirm){
    if (isConfirm){
    window.location.replace('demo.php');
    } 
   });

   });

    }
   $("#myform").submit(function(){
    return false;
   });

  </script>
</body>
</html>

demo1.php:

<?php
   $a=mysql_connect("localhost","root","");
   $a1=mysql_select_db("test",$a);      

                 $name=$_POST['name'];
     $i=mysql_query("insert into student (name) values ('$name')");

 ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    相关资源
    最近更新 更多