Как вызвать функцию JQuery после перенаправления на ту же страницу? - PullRequest
2 голосов
/ 13 июня 2011

Допустим, после того, как мой пользователь заполнил форму и нажал кнопку отправки, я хочу, чтобы пользователь перенаправлялся на ту же страницу с формой, и воспроизводилась анимация jquery.Функция заголовка предназначена для предотвращения обновления пользователем страницы и повторной отправки тех же данных.

ОБНОВЛЕНИЕ: Я решил использовать $ _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>

Ответы [ 3 ]

4 голосов
/ 13 июня 2011

Используйте вот так

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>';
}
1 голос
/ 13 июня 2011

Вы можете использовать плагин формы jQuery .

1 голос
/ 13 июня 2011

Разве вы не можете просто оставить пользователя на той же странице и обработать отправку формы на той же странице (установив атрибут action формы для страницы, на которой эта форма)?

Это решило бы проблему перенаправления.Затем вы можете разместить свой код анимации jQuery на исходной странице и запустить анимацию в операторе if(isset($_POST['submit'])).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...