Отправка формы в $ (document) .ready (function () {. Есть ли простое исправление? - PullRequest
0 голосов
/ 24 февраля 2012

Это должно быть легко исправить для правильного гуру! Все работает для меня, за исключением того, что я не могу получить эту форму для отправки без нажатия кнопки «Отправить». Все значения данных действительны. Страница действий, ... gdform.php, использует $ _post для получения значения «redirect» из формы, а затем использует php для изменения местоположения заголовка. Это прекрасно работает, если я заполняю форму кнопкой отправки. Мне просто нужно, чтобы это происходило без щелчка ...
Посмотрите, пожалуйста!

<?php session_start();
require_once('Connect.php') ;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Nitrofill Document</title>

<?php
//error_reporting(E_ALL);
$sn=$_GET['num'];
echo $sn;

mysql_connect($hostname,$username, $password) OR die('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);
 $selectSQL = "select * from `Presentations` where `serialnum` ='" . $sn ."'" ;

$result = mysql_query($selectSQL) or die(mysql_error());
$row = mysql_fetch_array($result,  MYSQL_BOTH);
$thedoc = urldecode($row['docurl']);
$therecip=urldecode($row['recipient']);
$thetracker=urldecode($row['tracker']);
$lastacc=urldecode($row['last_accessed']);

?>
</head>
<body>

<form id="notice" action="http://m3sglobal.com/gdform.php" method="post"> 
<input  name="subject" value="<?php echo $therecip . " has viewed the document you sent them.";?> " /> 
<input type="hidden" name="redirect" value="<?php echo $thedoc ; ?>"/>
<label>Email:</label><input type="text" name="email" value="<?php echo $thetracker ; ?>"/>
<label>Comments:</label><textarea name="comments" cols="40" rows="5">
Document Viewed:<?php echo $thedoc ; ?>

When Accessed:<?php echo $lastacc ; ?>
</textarea>
<input type="submit" name="submit"/>
</form>
</body>

</html>
<script type="text/javascript">

 $(document).ready(function(){
   myfunc
 });

function myfunc () {
var frm = document.getElementById("notice");
frm.submit();
}

</script>

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Использование jQuery: (Не забудьте поместить скрипт jquery в теги <head>).

 <head>
 ...
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 ...
 <head>
 ...
 // submit form with id notice
 $(document).ready(function(){
     $('#notice').submit();
 });

Также ваш SQL подвергается инъекции. Пожалуйста, посмотрите на использование подготовленных заявлений. Пример в PHP:

$mysqli = new mysqli('localhost', 'user', 'password', 'db');
$stmt = $mysqli->prepare('select * from `Presentations` where `serialnum` =?');
$stmt->bind_param('i',$sn);
$stmt->execute();
....
0 голосов
/ 24 февраля 2012

Я могу ошибаться, но не должно ли это быть: (исправлены опечатки)

$(document).ready(function(){
   myfunc(); <--// with ();
}); 

function myfunc() {  <--// without space
    var frm = document.getElementById("notice");
    frm.submit();
}

или еще лучше:

$(document).ready(function(){
   $("form#notice").submit();
});

РЕДАКТИРОВАТЬ:

Prowla прав, вы также не объявили библиотеку jQuery.Хорошо поймал Prowla, я пропустил это, только что увидел опечатки.

РЕДАКТИРОВАТЬ # 2:

Ваш код там довольно грязный, и у вас есть эта строка, сгенерированная PHP в <head>.Также ваш запрос не имел value, вы использовали name.Я исправил это, вот рабочий код (по крайней мере для меня):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nitrofill Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        $("form#notice").submit();
    });
    </script>
</head>
<body>
<!--// ALL THE PHP SHOULD GO HERE TO MAKE THE URL BELOW //-->
qyO452ZKphttps://docs.google.com/presentation/pub?id=1chxqg-qjrfEvAR9_Jia7lt4ps2_Q7IfTiI41bQE7Q_4&start=true&loop=false&delayms=3000<br/>greg.mcgee@gmail.com<br/>greg.mcgee@advetel.com<br/>Thu, 23 Feb 2012 19:42:11 MST<br/>
<!--// END PHP //-->

<form id="notice" action="http://m3sglobal.com/gdform.php" method="post"> 
    <input name="subject" value="greg.mcgee@gmail.com has viewed the document you sent them. " /> 
    <input type="hidden" name="redirect" value="https://docs.google.com/presentation/pub?id=1chxqg-qjrfEvAR9_Jia7lt4ps2_Q7IfTiI41bQE7Q_4&start=true&loop=false&delayms=3000"/>
    <label>Email:</label><input type="text" name="email" value="greg.mcgee@advetel.com"/>
    <label>Comments:</label><textarea name="comments" cols="40" rows="5">
        Document Viewed:https://docs.google.com/presentation/pub?id=1chxqg-qjrfEvAR9_Jia7lt4ps2_Q7IfTiI41bQE7Q_4&start=true&loop=false&delayms=3000
        When Accessed:Thu, 23 Feb 2012 19:42:11 MST
    </textarea>
    <input type="submit" value="submit"/>
</form>
</body>
</html>

Возможно, вы захотите использовать firebug , чтобы помочь вам устранить неполадки на ваших страницах.Это как я понял это.Также помните совет Prowla и защитите свой SQL.

...