2012-04-06 3 views
1

У меня есть страница для ответа/вопроса. Я получаю список вопросов для администратора. admin см. это. теперь мне нужно отправить ответ на каждый вопрос. поэтому я для каждого вопроса поставил textarea и форму с сообщением. теперь мне нужно, когда вы отправляете ответ на вопросное сообщение, если отправить сообщение внешним файлам php = true; удаления сообщения (ID) (эффект слайдов jquery). для этого у меня есть jquery submit form code (без страницы обновления), но у меня есть большая проблема. это работало ТОЛЬКО с одной формой! и не работал для всех форм списка (вопрос + форму ответа). как сработал мой код для нескольких форм? Я выбрал правильный путь?Отправить несколько форм с jQuery php mysql

HTML код:

<form action="insert.php?id=42" id="forms" method="POST" name="form"> 
<div id="box"> 
<div class="messagequestion"></div> 
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div> 
</div> 
</form> 
<form action="insert.php?id=45" id="forms" method="POST" name="form"> 
<div id="box"> 
<div class="messagequestion"></div> 
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div> 
</div> 
</form> 
<form action="insert.php?id=48" id="forms" method="POST" name="form"> 
<div id="box"> 
<div class="messagequestion"></div> 
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div> 
</div> 
</form> 
<form action="insert.php?id=50" id="forms" method="POST" name="form"> 
<div id="box"> 
<div class="messagequestion"></div> 
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div> 
</div> 
</form> 

Благодаря

+1

Не использовать же 'id' для нескольких объектов –

ответ

0

Ваш основной проблемой является, вероятно, что вы пытаетесь повторно использовать идентификаторы. Все формы имеют идентификатор "forms", и вы также делитесь идентификатором "box".

Все идентификаторы должны однозначно идентифицировать элемент. Используйте класс, когда вам нужно классифицировать элемент. Я бы порекомендовал вам изменить id="forms" по всем формам на class="reply_form", а затем также изменить id="box" на все лидеры на class="reply_box". Затем измените стили, установленные для #forms и #box, на те, которые установлены для .reply_form и .reply.

EDIT - настройки, сделанные в jsfiddle после некоторого обсуждения с OP.

http://jsfiddle.net/gvnfg/5/

+0

не работали! см. демонстрационный код: http://jsfiddle.net/gvnfg/1/ – Gcoder

+0

Ознакомьтесь с http://jsfiddle.net/gvnfg/2/ – ghbarratt

+0

i измените это для каждого ''! http://jsfiddle.net/gvnfg/3/ после щелчка для отправки я вижу диалоговое окно, но после щелчка ok я вижу цикл диалогового окна для другого ID. это большая проблема. – Gcoder

-1

использование Jquery .each() метод:

$(document).ready(function() { 
    $('#forms').each(function() { 

     this.submit(function() { 
      $.ajax({ ... }); 
     }); 
    }); 

}) 
0

просто изменить селектор. id атрибут должен быть уникальным в HTML

$("[name='form']").submit(function() { 
    $this = $(this);  
    $.ajax({ 
     type: 'POST', 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     cache: false,  
     beforeSend: function() { 
      $('#loading').show(); 
      $('#result').hide(); 
     }, 
     success: function(data) { 
      if(data==1){ 
       $('#loading').hide(); 
       $('#result').fadeIn('slow').html("ok"); 
       $('#result').addClass('true'); 
       $this.slideUp(1000); 
      } 
     else { 
      $('#loading').hide(); 
      $('#result').fadeIn('slow').html(data); 
      $('#result').addClass('errors'); 
     }} 
    }); 
    e.preventDefault(); 
    return false; 
}); 
+0

где ваша кнопка отправки. – Yorgo

+0

Обновлено! после каждого текстового поля. ваш код не удаляется/сползает. в вашем коде удалять только верхнюю строку, чтобы после удаления. ex в моем коде: remove 'id = 42'. – Gcoder

Смежные вопросы