Почему не работает мой автосохранение ajax? - PullRequest
0 голосов
/ 28 июля 2011

Я использую скрипт, найденный на этой странице: http://jetlogs.org/2007/11/11/auto-saving-with-jquery/ для автоматического сохранения формы, которую я имею.Я только пытаюсь сохранить текстовое поле для формы.Вот соответствующий код:

<head>
    <script type="text/javascript">
        $(document).ready(function(){           
            autosave();
        });

        function autosave()
        {
            var t = setTimeout("autosave()", 5000);

            var comments = $("#comments").val();

            if (comments.length > 0)
            {
                $.ajax(
                {
                    type: "POST",
                    url: "autosave.php",
                    data: "rubric_id=" + <?php echo $rubricid ?> + "&student_id=" + <?php echo $studentid ?> + "&comments=" + comments,
                    cache: false,
                    success: function(message)
                    {   
                        $("#autosave_status").empty().append(message);
                    }
                });
            }
        } 
        </script> 
</head>
<body>
<div id="autosave_status"></div>
<form action='assess.php?student=146&rubric=19' method='POST'>
<textarea id="elm1" name="comments" rows="15" cols="80" style="width: 80%">
</form>
</body>

А вот и PHP:

<?php
//include DB configuration file
  include "../../signout/database.php";


$comments = mysql_real_escape_string($_POST['comments']);
$rubric_id = (int)$_POST['rubric_id'];
$student_id = (int)$_POST['student_id'];



//save contents to database
$sql = "UPDATE rubrics_comments SET comments = '$comments' WHERE studentid = '$student_id' AND rubricid='$rubric_id'";
mysql_query($sql) or die (mysql_error());
echo $sql;



//output timestamp
echo 'Saved';

?>

Кажется, что почти как ajax не работает, так как я не вижу никаких изменений на дисплееили сообщения об ошибках на странице, где расположена форма.

Есть идеи?Спасибо!

Ответы [ 3 ]

5 голосов
/ 28 июля 2011

ваша текстовая область имеет идентификатор elm1

<textarea id="elm1" name="comments" rows="15" cols="80" style="width: 80%">

но вы пытаетесь получить к нему доступ

$("#comments")

изменить на

$("#elm1")

или

$("[name=comments]")
1 голос
/ 28 июля 2011

Две вещи:

изменить

 var comments = $("#comments").val();

на

 var comments = $("#elm1").val();

И закрыть элемент textarea:

</textarea>
1 голос
/ 28 июля 2011

Идентификатор вашей текстовой области не "комментарии". И вы используете селектор идентификатора $("#id");

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