Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 06.01.2016, 03:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

function myFunction(){ - это объявленная функция
$(document).ready(function() - это событие

Где вы такое нашли, да еще по указанной ссылке?
Ответить с цитированием
  #22 (permalink)  
Старый 06.01.2016, 04:24
Интересующийся
Отправить личное сообщение для CHER84 Посмотреть профиль Найти все сообщения от CHER84
 
Регистрация: 06.01.2016
Сообщений: 11

Все-таки есть некоторое неудобство в том решении, которое я выше описывал.
Решил сделать по-другому.
Кнопкой сабмит вызываем функцию:
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();

Но как из массива объектов сделать приемлемую форму для передачи данных - тоже не могу разобраться.
Ответить с цитированием
  #23 (permalink)  
Старый 06.01.2016, 04:25
Интересующийся
Отправить личное сообщение для CHER84 Посмотреть профиль Найти все сообщения от CHER84
 
Регистрация: 06.01.2016
Сообщений: 11

Сообщение от laimas Посмотреть сообщение
function myFunction(){ - это объявленная функция
$(document).ready(function() - это событие

Где вы такое нашли, да еще по указанной ссылке?
это уже я наворотил, поэтому и не нравится мне такой подход =)
Ответить с цитированием
  #24 (permalink)  
Старый 06.01.2016, 04:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от CHER84
Но как из массива объектов сделать приемлемую форму для передачи данных
Не понял о какой форме речь, $("#"+form_id).serializeArray() это данные формы в виде объекта для передачи серверу, а что значит создать приемлемую форму?
Ответить с цитированием
  #25 (permalink)  
Старый 06.01.2016, 04:58
Интересующийся
Отправить личное сообщение для CHER84 Посмотреть профиль Найти все сообщения от CHER84
 
Регистрация: 06.01.2016
Сообщений: 11

Я имею ввиду такой тип данных, который бы корректно воспринялся.
например, когда я пишу код вот так:
$("#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 ...
Ответить с цитированием
  #26 (permalink)  
Старый 06.01.2016, 05:15
Интересующийся
Отправить личное сообщение для CHER84 Посмотреть профиль Найти все сообщения от CHER84
 
Регистрация: 06.01.2016
Сообщений: 11

var dataVar = $("#"+form_id).serializeArray();
		
		alert(dataVar);
		$("#modal_form").load(
		"/ajax/registration.php",dataVar
		);


Вот так без фигурных скобок работает и передает данные.
Спасибо за оказанную помощь, Вы мне очень помогли, по сути в теме уже два варианта решения проблемы и второй мне больше нравится, так как в нем мы никуда не уходим от метода load, который без дополнительных танцев с бубном воспринимает JS как код.
У меня голова уже пухнет, поэтому отложу увлекательное ковыряние на завтра =)
Ответить с цитированием
  #27 (permalink)  
Старый 06.01.2016, 05:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от CHER84
Вот так без фигурных скобок работает и передает данные.
Ну так зачем же они, если var dataVar = $("#"+form_id).serializeArray(); и есть объект?

Но это не ответ на вопрос "о какой форме речь". Вообще не понятно - зачем возвращать на страницу формы регистрации при ошибках, если ошибки нужно проверять в сеансе регистрации, а значит и так находимся в форме? Скорее нужен переход на страницу завершения регистрации при успехе. В вашем случае нужен диалог, а его удобнее вести посредством JSON формата, и лучше не .load() использовать, а .ajax() метод. Это будет более гибкое решение, да и не зная всего уверен, что многое можно иметь готовым на клиенте, не гоняя в данных сценариев.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипты в java.js перестают работать. oneplus Элементы интерфейса 34 28.05.2015 19:22
Не работают скрипты после обновления данных Dealaxer Общие вопросы Javascript 4 18.03.2015 17:12
innerHTML....? Hapson Элементы интерфейса 4 24.07.2013 01:33
Не работают скрипты на jQuery в IE6/7 Александр345 jQuery 6 19.08.2011 13:27
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 11:57