function myFunction(){ - это объявленная функция
$(document).ready(function() - это событие Где вы такое нашли, да еще по указанной ссылке? |
Все-таки есть некоторое неудобство в том решении, которое я выше описывал.
Решил сделать по-другому. Кнопкой сабмит вызываем функцию: function formSubmit(result_id,form_id,url){ //var dataVar = jQuery("#"+form_id).serializeArray(); var dataVar = $("#"+form_id).serialize(); // var1=1&var2=0&... var dataVar = dataVar.replace(/&/g,","); // var1=1,var2=0, ... var dataVar = dataVar.replace(/=/g,":"); // var1:1,var2:0, ... $("#modal_form").load( "/ajax/registration.php", { dataVar }); } не работает... пробую задать параметры вручную function formSubmit(result_id,form_id,url){ //var dataVar = jQuery("#"+form_id).serializeArray(); var dataVar = $("#"+form_id).serialize(); // var1=var1&var2=var2&... var dataVar = dataVar.replace(/&/g,","); // var1=var1,var2=var2, ... var dataVar = dataVar.replace(/=/g,":"); // var1:var1,var2:var2, ... $("#modal_form").load( "/ajax/registration.php", { var1: 1,var2:0 }); } этот вариант работает Я понимаю, что проблема в типе передаваемых данных, но не могу найти решения, пишут, что для load можно передавать строку, но на практике не проходит такой вариант. Еще нашел, что нужно использовать var dataVar = $("#"+form_id).serializeArray(); Но как из массива объектов сделать приемлемую форму для передачи данных - тоже не могу разобраться. |
Цитата:
|
Цитата:
|
Я имею ввиду такой тип данных, который бы корректно воспринялся.
например, когда я пишу код вот так: $("#modal_form").load( $("#modal_form").load( "/ajax/registration.php", { var1: 1, var2: 0 }); то данные успешно передаются и я могу с ними работать Но когда я делаю var dataVar = 'var1:1,var2:0'; $("#modal_form").load( "/ajax/registration.php", { dataVar }); то данные не передаются. Соответственно я предполагаю, что проблема в типе передаваемых данных http://jquery-docs.ru/Ajax/load/#source здесь сказано " данные (необязательно) Map,Строка Пары ключ/значение, которые будут отосланы на сервер. Начиная с jQuery 1.3 может также передаваться строка данных. При указании строки, запрос будет типа GET, для всего остального — типа POST. " http://jquery-docs.ru/Types/ тут я не смог найти что такое мар, строка В моем представлении строк два представленных выше куска кода должны одинаково отрабатывать, но видимо я чего-то не понимаю. Это я пока не касаюсь serializeArray, потому что возвращаемое им для меня еще более непонятно и как это привести к более наглядной форме я пока не понял, просто массив, переданный как данные var dataVar = jQuery("#"+form_id).serializeArray(); $("#modal_form").load( "/ajax/registration.php", { dataVar }); тоже не дает никакого результата, всмысле данные теряются, но тут не так обидно, они изначально [object Object] и требуется какая-то обработка, для приведения их к виду var1:1,var2:0 ... |
var dataVar = $("#"+form_id).serializeArray(); alert(dataVar); $("#modal_form").load( "/ajax/registration.php",dataVar ); Вот так без фигурных скобок работает и передает данные. Спасибо за оказанную помощь, Вы мне очень помогли, по сути в теме уже два варианта решения проблемы и второй мне больше нравится, так как в нем мы никуда не уходим от метода load, который без дополнительных танцев с бубном воспринимает JS как код. У меня голова уже пухнет, поэтому отложу увлекательное ковыряние на завтра =) |
Цитата:
Но это не ответ на вопрос "о какой форме речь". Вообще не понятно - зачем возвращать на страницу формы регистрации при ошибках, если ошибки нужно проверять в сеансе регистрации, а значит и так находимся в форме? Скорее нужен переход на страницу завершения регистрации при успехе. В вашем случае нужен диалог, а его удобнее вести посредством JSON формата, и лучше не .load() использовать, а .ajax() метод. Это будет более гибкое решение, да и не зная всего уверен, что многое можно иметь готовым на клиенте, не гоняя в данных сценариев. |
Часовой пояс GMT +3, время: 14:00. |