Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2009, 04:56
Аспирант
Отправить личное сообщение для grusha Посмотреть профиль Найти все сообщения от grusha
 
Регистрация: 01.03.2009
Сообщений: 55

Ajax filter
Опять только на Вас и уповаю javascript Гуры
Есть такая форма.
<form action="" method="POST" id="thisform">		
		<label>Comments</label><br />
		<textarea name="comment_content" class="comment-form" rows="6" cols="96"/></textarea><br />
		
		<input type="submit" name="submit" value="Submit" class="log2" id="submit_ajax" />
		<input type="hidden" name="process" value="newcomment" />
		<input type="hidden" name="randkey" value="{$randkey}" />
		<input type="hidden" name="link_id" value="{$link_id}" />
		<input type="hidden" name="user_id" value="{$user_id}" />
	</form>

Это форма отправки комментария.
Это код , как пример, показа комментариев

<ol class="commentlist">
<div id="comment_body">
this text comments
</div>
</ol>


С помощью jQuery и Ajax хочу чтобы после отправки формы , коммент появлялся сразу на странице.
jQuery запрос написал такой:

jQuery('#submit_ajax').click(function(event) {
		var this_filed = jQuery(this);
		var comment_content = jQuery("textarea[name='comment_content']").val();
		var process = jQuery("input[name='process']").val();
		var randkey = jQuery("input[name='randkey']").val();
		var link_id = jQuery("input[name='link_id']").val();
		var user_id = jQuery("input[name='user_id']").val();
		ajax_comments (comment_content,process,randkey,link_id,user_id);
		return false;
		});

function ajax_comments (comment_content,process,randkey,link_id,user_id){
		jQuery.ajax({
			data:  "comment_content="+comment_content+"&process=" + process+"&randkey=" + randkey+"&link_id=" + link_id+"&user_id=" + user_id,
			type:'POST',
			 success: function(aws){
			 var response = jQuery("<ol>").html(aws);
	
	   jQuery(".commentlist").empty();
			jQuery('.commentlist').append(response.find('.commentlist'));
			
		 
							
			 },
			 error: function (aws){
			 }
		});

Вобщем то запрос отправляется нормально и комментарии обновляются , но только по 3 - 4 раза сразу.
Т.е. Такой запрос возвращает мне всю страницу ,вместе со всеми <body><head> и т.д. поэтому все что подключенно к файлу index.php , во время запроса тоже выполняется.
А вопрос такой .... есть ли возможность из полученного Ajax запроса удалить весь не нужный мне код , а оставить только то что находиться в тегах <ol class="commentlist">, т.е. говоря более менее русским языком , что бы обновлялся вообще только этот тег.
Заранее спасибо .

Последний раз редактировалось grusha, 28.03.2009 в 05:03.
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2009, 05:08
Аспирант
Отправить личное сообщение для grusha Посмотреть профиль Найти все сообщения от grusha
 
Регистрация: 01.03.2009
Сообщений: 55

Также хотел спросить....может для нормальной работы этого кода надо использовать jquery.form.js ?
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2009, 18:41
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
Опять только на Вас и уповаю javascript Гуры
даже отвечать как-то неудобно *SCRATCH*

так а в чем проблемы? Тот ajax-запрос, который добавляет комментарий просто должен возвращать html-разметку для комментария, которые будет вставлен (и тут удобнее будет load, чем ajax, думаю)
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2009, 05:20
Аспирант
Отправить личное сообщение для grusha Посмотреть профиль Найти все сообщения от grusha
 
Регистрация: 01.03.2009
Сообщений: 55

Сообщение от x-yuri Посмотреть сообщение
так а в чем проблемы? Тот ajax-запрос, который добавляет комментарий просто должен возвращать html-разметку для комментария, которые будет вставлен (и тут удобнее будет load, чем ajax, думаю)
Ну если бы он возвращал только html-разметку для комментария , то проблем наверно не было бы
Но в моём случае он возвращет всю разметку html , т.е. разметку всей страници , включая <body><head> и т.д. . В этом то я и думаю проблема.
Изменить код самого добавления комментов я не могу. По этому и задал вопрос , может как то можно,что бы из полученного Ajax запроса удалить весь не нужный мне код , а оставить только то что находиться в тегах <ol class="commentlist">, т.е. говоря более менее русским языком , что бы обновлялся вообще только этот тег.
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2009, 22:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
Изменить код самого добавления комментов я не могу
почему?

Цитата:
Тот ajax-запрос, который добавляет комментарий просто должен возвращать html-разметку для комментария
второй вариант - страничка должна хранить шаблон разметки комментария, по которому будет добавляться новый комментарий. В этом случае надо будет изменить скрипт добавления комментария, чтобы никакая разметка не выводилась. Остальные варианты, которые приходят мне в голову, - пляски с бубном и извращения
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2009, 18:13
Аспирант
Отправить личное сообщение для grusha Посмотреть профиль Найти все сообщения от grusha
 
Регистрация: 01.03.2009
Сообщений: 55

Спасибо .
Вобщем как я понимаю надо менять сам файл добавления комментов , остальное это извращение
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Неверный результат в AJAX с получением HTML Raynor AJAX и COMET 3 17.12.2008 18:38
AJAX и БД SunYang AJAX и COMET 3 06.06.2008 22:44
Ajax & Autorun Ergall-M AJAX и COMET 11 08.05.2008 15:33
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54