Переписать этот код, потому что serialize () не работает - PullRequest
2 голосов
/ 23 ноября 2010

У меня есть AJAX JQuery код:

var form = document.getElementById('frm');
            var data_string = form.serialize();
            $.ajax({
                type:       "POST",
                url:        "my_php_file.php",
                data:       data_string,
                success:    function(data) {

                }//end success function
            }) //end ajax call

Это во внешнем файле с именем ajax.js.

Я включаю ajax.js в html-файл с именем "show.html". Я также включаю jquery.js в show.html

Я попытался заставить сериализацию работать, но код завершается прямо перед выполнением сериализации. Понятия не имею почему. Но я уверен, что именно сериализация вызывает ее.

Можно ли сделать несколько простых изменений, чтобы не использовать сериализацию?

Спасибо

UPDATE:

Этот код (из ответа ниже), кажется, работает частично также, когда я оповещаю переменную "form", в сообщении говорится "HTML Form Object", поэтому он находит форму. Затем, когда я предупреждаю переменную «data_string», сообщение говорит: «frm = undefined».

Есть идеи, почему?

var form = document.getElementById('frm');
var data_string = $(form).serialize();

Ответы [ 2 ]

7 голосов
/ 23 ноября 2010

Метод serialize() исходит от jQuery. Ваше утверждение не выполнено, потому что форма не завернута в jQuery:

var form = $('#frm');
var data_string = form.serialize();

Или:

var form = document.getElementById('frm');
var data_string = $(form).serialize();
1 голос
/ 23 ноября 2010

Я предполагаю, что вы ссылаетесь на "традиционный" объект DOM, используя getElementByID, а не используете его через jQuery (который будет проходить через форму и добавлять информацию). Попробуйте использовать:

var data_string = $('#frm').serialize();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...