Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как с помощью jquery отсылать без перезагрузки... (https://javascript.ru/forum/jquery/18865-kak-s-pomoshhyu-jquery-otsylat-bez-perezagruzki.html)

serhanters 18.07.2011 18:44

как с помощью jquery отсылать без перезагрузки...
 
делаю сайт на котором елементы многие будут изменятся без перезагрузки вот один из скриптов
$('#updateTemplate :submit').click(function(eventObject){
eventObject.preventDefault();
	
	$.ajax({
		type: 'POST',
		url: base_url + 'template/createOk/inline/' + Math.random(),
		dataType: 'json',
		data: $('#inline_colorBackgraund').serialize() + '&' + $('#inline_colorLink').serialize(),
		success: function(response){
			if(response.msg == 'success')
			{
				alert(response.msgInfo);
			}
			else if(response.msg == 'error')
			{
				alert(response.msgInfo);
			}
		}
		
	});
});

if (trim($this->input->post($prefix . 'colorBackgraund')) != '')
		{
			$newTemplate = array('colorBackgraund' => $this->input->post($prefix . 'colorBackgraund'), 'colorLink' => $this->input->post($prefix . 'colorLink'));
			$newWallId = $this->templatemodel->editTemplate($newTemplate);
			$tpl = '';
			$msg = 'success';
			$msgInfo = $this->lang->line('template_create_success');
		}
		else
		{
			$msg = 'error';
			$msgInfo = $this->lang->line('template_error');
			$tpl = '';
		}
		echo json_encode(array('msg' => $msg, 'msgInfo' => $msgInfo));


тоесть, данные из форм я перехватываю скриптом, отменив действие по умолчанию(перезагрузку страницы), если скрипт успешно выполнен, то должно выдаватся сообщение, но я то отменил действие по умолчанию функцией preventDefault и ответ который я должен был получить теперь не получу или можно получить? Если можно получить то как??? или может есть способ помимо preventDefault? запретить перезагрузку страницы??? поделитесь знаниями и опытом, всем зараннее спасибо

Matre 18.07.2011 22:03

Цитата:

ответ который я должен был получить теперь не получу или можно получить? Если можно получить то как???
Он же есть в переменной response.

serhanters 18.07.2011 23:23

Цитата:

Сообщение от Matre (Сообщение 114096)
Он же есть в переменной response.

в том-то и суть, что ответ мне не приходит, несмотря на то, что написано всё верно 100%, может мне нужно в форме указывать путь другой, чтобы ответ приходил, или неуказывать путь в форме вообще?

ваый 18.07.2011 23:32

$('#updateTemplate :submit').click(function(e) {
    e.preventDefault();
    ...
лучше бы это было как-то так:
$('#formBeingSubmited').submit(function(e) {
    e.preventDefault();
для формы надо делать preventDefault, потому что именно для формы отправка ее есть событие по умолчанию (и перегрузка соответственно), а не для для щелчка по кнопке.

serhanters 19.07.2011 01:23

ваый,
понял, спасибо сейчас попробую

serhanters 19.07.2011 01:39

когда убираю
url: base_url + 'template/createOk/inline/' + Math.random(),


в строке inline/

ошибка главное появляется, в чём тогда прикол, какая причина может быть, что успешный ответ не приходит? скрипт работает коректно, все елементы меняются

serhanters 19.07.2011 21:39

...

serhanters 22.07.2011 16:59

кто нить знает в чём может быть проблемма:?=(

SkyLight 22.07.2011 19:32

А вы уверены, что скрипт доходит до стадии success? Может он в error вываливается. Смотрите файрбагом, что возвращает ваш запрос и анализируйте увиденное.

serhanters 22.07.2011 20:37

дак суть в том, что все данные передаются нормально, всё доходит к БД, но не работает, почему не пойму, и как я смогу файрбагом отловить где причина?


Часовой пояс GMT +3, время: 01:56.