Как сохранить переменную JS в базе данных - PullRequest
0 голосов
/ 26 марта 2012

Я использую CakePHP и уже несколько дней пытаюсь сохранить переменную java-скрипта с помощью ajax (jQuery) в базе данных mysql.

Для этого я использую следующий код:

 <!-- document javascripts -->    
<script type="text/javascript">
    $(document).ready(function () {
        $('#saveForm').submit(function(){
            var formData = $(this).serialize();
            var formUrl = $(this).attr('action');
            $.ajax({
                type: 'POST',
                url: formUrl,
                data: formData,
                success: function(data,textStatus,xhr){
                        alert(data);
                },
                error: function(xhr,textStatus,error){
                        alert(textStatus);
                }
            }); 
            return false;
        });
    });
</script>

Но когда я нажму на кнопку отправки, Ajax опубликует полный Sourcode моей веб-страницы.= (

Мне нужна функция для хранения переменной java-скрипта в моей базе данных, но без перезагрузки страницы.

Я благодарен за любую помощь =)

Ответы [ 3 ]

1 голос
/ 26 марта 2012

Мой JS немного ржавый, но попробуйте изменить:

var formData = $(this).serialize();

На:

var formData = $('#saveForm').serialize();

Или:

var formData = $('#saveForm').val().serialize();

Предполагается, что вы хотите сериализоватьи сохраните HTML-код всей формы.

Чтобы извлечь только значение из формы (я не думаю, что вам нужно сериализовать), попробуйте:

var formData = $('#saveForm #someInputName').val();

Конечно, изменив someInputName на любое другоефактическое имя поля, которое вы хотите сохранить:

1 голос
/ 26 марта 2012

Вы сказали jQuery сериализовать элемент формы.То есть преобразовать элемент формы в текстовую строку.Другими словами, вы говорите, чтобы получить HTML-код формы и отправить его на ваш сервер.

Я не знаю (или не хочу знать), каков правильный способ отправки данных формы с помощью AJAX, но я знаю, что вам нужно сделать что-то вроде доступа к полям формы, чтобы получить их значения.

0 голосов
/ 26 марта 2012

Возможно, проблема в параметре данных. $('#saveForm').serialize(); должно быть в порядке

...