【问题标题】:how to call jquery function after redirecting to same page?重定向到同一页面后如何调用jquery函数?
【发布时间】:2011-06-14 16:31:42
【问题描述】:

假设在我的用户填写表单并单击提交按钮后,我希望用户重定向到与表单相同的页面,并且会播放 jquery 动画。 header 功能是为了防止用户刷新页面并重新提交相同的数据。

更新: 我决定使用 $_SESSION 记录用户的会话,以尝试在他们被重定向到同一页面后播放 jquery 动画:

<?php
session_start(); 

if (isset ($_POST['submit']))
{
$connect = mysql_connect("","","") or die("Error connecting to db");
mysql_select_db("") or die("Error connecting to db");

$text = $_POST['text'];



mysql_query ("INSERT INTO header VALUES('','$text')");

  $_SESSION['jq']=='a';
    header('Location: header.php');
    die();

}


if($_SESSION['jq']=='a') {
   $_SESSION['jq']='';

echo'
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    $("div").hide(3000);

});
</script>';


}




?>



<html>
<head>

<style type="text/css">
#jquery {border:1px solid black;width:300px;}
</style>

</head>
<body>
<form name="header" action="header.php" method="post">


<input type="text" name="text" />
<input type="submit" name="submit" value="submit"    />
</form>
<div id="jquery">this is jquery animation</div>

</body>
</html>

【问题讨论】:

  • 嗯,就是这样。页面重新加载是否与它有关,或者您只是想知道如何播放动画?如果是这样,您必须更详细地说明您想要什么动画,或者您应该将注释更改为“在此处插入一些随机动画”。
  • 是的,它可以是任何类型的动画
  • 添加一个“光滑”因素,通过 ajax 提交并使用成功回调来触发您的动画。

标签: php jquery html forms header


【解决方案1】:

这样使用

if (isset ($_POST['submit']))
{
    $text = $_POST['text'];
    mysql_query ("INSERT INTO header VALUES('','$text')");

    //redirect to same page that user submitted form from
    header('Location: form.php?jq=a');
    die();
}
if($_GET['jq']=='a') {
   //play animation
   echo'<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
   <script type="text/javascript">
   $(document).ready(function(){

       //insert jquery animation code

   });
   </script>';
}

或者

session_start();
if (isset ($_POST['submit']))
{
    $text = $_POST['text'];
    mysql_query ("INSERT INTO header VALUES('','$text')");

    //redirect to same page that user submitted form from
    //$_SESSION['jq']=='a'; commented for your understanding remove this in your code.
    $_SESSION['jq']='a';
    header('Location: form.php');
    die();
}
if($_SESSION['jq']=='a') {
   $_SESSION['jq']='';
   //play animation
   echo'<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
   <script type="text/javascript">
   $(document).ready(function(){

       //insert jquery animation code

   });
   </script>';
}

【讨论】:

  • 对于使用 $_SESSION 的第二种方法,数据被发送到 SQL 表,但动画不播放。请帮忙!
  • oh k 然后在提交到 form.php 后打开查看源代码并检查脚本是否存在...您在哪个页面中有此 php 代码?在 form.php 或其以前的文件中..
  • 表单操作页面与 php 代码位于同一位置,因此 form.php 具有 php 代码。
  • 如果我这样做,我会得到“警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已发送”请参阅上面更新的 OP!
  • 再次抱歉,把header函数前的==改成=。我已经更新了我的答案。
【解决方案2】:

你不能让用户在同一页面上,并在同一页面上处理表单提交(通过将表单的action属性设置为表单所在的页面)?

这将处理重定向问题。然后,您可以在原始页面中包含 jQuery 动画代码,并在 if(isset($_POST['submit'])) 语句中启动动画。

【讨论】:

  • 嗯,header的作用是防止他们刷新页面重新提交数据
【解决方案3】:

您可以使用jQuery form plugin

【讨论】:

  • 你可以举个例子吗?
猜你喜欢
  • 2014-01-19
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
相关资源
最近更新 更多