2015-06-10 3 views
0

У меня есть много этих форм, которые я публикую с PHP. Они находятся под каждой статьей на моей странице, но когда я отправляю форму с помощью этих функций ajax, она отправляется только в первую форму страницы. Зачем? Я хочу отправить эту форму отдельно, что я делаю неправильно?multi form ajax php социальная система комментариев

<script type="text/javascript" > 
 
    $(function() { 
 
    $(".submit").click(function() 
 
    { 
 
    var name = $("#name").val(); 
 
    var comment = $("#comment").val(); 
 
    var post_id = $("#post").val(); 
 
    var dataString = 'name='+ name + '&comment=' + comment+ '&post_id=' + post_id; 
 
    if(name=='' || comment=='') 
 
    { 
 
    alert('Please Give Valid Details'); 
 
    } 
 
    else 
 
    { 
 
    $("#flash").show(); 
 
    $("#flash").fadeIn(400).html('<img src="images/loading.gif" />Loading Comment...'); 
 
    $.ajax({ 
 
    type: "POST", 
 
    url: "commenti.php", 
 
    data: dataString, 
 
    cache: false, 
 
    success: function(html){ 
 
    $("ol#update").append(html); 
 
    $("ol#update li:last").fadeIn("slow"); 
 
    $("#flash").hide(); 
 
    } 
 
    }); 
 
    }return false; 
 
    }); 
 
    }); 
 
<script>
<ol id="update" class="timeline"> 
 
</ol> 
 
    <div id="flash"></div> 
 
    <div > 
 
    <form action="#" method="post"> 
 
    <input type="hidden" id="post" value="<?php echo $post_id; ?>"/> 
 
    <input type="hidden" id="name" value="<?php echo $username; ?>"/> 
 
    <textarea id="comment"></textarea><br /> 
 
    <input type="submit" class="submit" value=" Submit Comment " /> 
 
    </form> 
 
    </div> 
 

 
<ol id="update" class="timeline"> 
 
</ol> 
 
    <div id="flash"></div> 
 
    <div > 
 
    <form action="#" method="post"> 
 
    <input type="hidden" id="post" value="<?php echo $post_id; ?>"/> 
 
    <input type="hidden" id="name" value="<?php echo $username; ?>"/> 
 
    <textarea id="comment"></textarea><br /> 
 
    <input type="submit" class="submit" value=" Submit Comment " /> 
 
    </form> 
 
    </div> 
 

 
<ol id="update" class="timeline"> 
 
</ol> 
 
    <div id="flash"></div> 
 
    <div > 
 
    <form action="#" method="post"> 
 
    <input type="hidden" id="post" value="<?php echo $post_id; ?>"/> 
 
    <input type="hidden" id="name" value="<?php echo $username; ?>"/> 
 
    <textarea id="comment"></textarea><br /> 
 
    <input type="submit" class="submit" value=" Submit Comment " /> 
 
    </form> 
 
    </div>

+3

У вас есть дубликаты идентификаторов в ваших формах, которые недопустимы. * ID должен быть уникальным. * –

+0

Я тестировал добавление, например, id = "name ", Но ничего не изменило, что мне редактировать в функции ajax? и спасибо за ответ – Pjor94

ответ

1

Прежде всего, как уже было сказано в комментариях, не используйте repetead идентификаторы. Если вы не собираетесь использовать идентификаторы как уникальный идентификатор, используйте классы.

<ol class="timeline update"> 
    <div id="flash"></div> 
    <div > 
     <form action="#" id="form" method="post"> 
      <input type="hidden" class="post" value="<?php echo $post_id; ?>"/> 
      <input type="hidden" class="name" value="<?php echo $username; ?>"/> 
      <textarea class="comment"></textarea><br /> 
      <input type="submit" class="submit" value=" Submit Comment " /> 
     </form> 
    </div> 
</ol> 

В вашем коде яваскрипта, вы пытаетесь получить имя идентификационных var name = $('#name'), верно? Какое имя?

Также попробуйте отправить запрос с массивом, а не с строкой.

Что-то вроде этого:

$(".submit").click(function() 
{ 
    var name = $(this).parents('form:input.name').val(); 
    var comment = $(this).parents('form:input.comment').val(); 
    var post_id = $(this).parents('form:input.post').val(); 
    var data = {'name': name, 
       'comment': comment, 
       'post_id':post_id}, 
    $.ajax({ 
     type: "POST", 
     url: "commenti.php", 
     data: data, 
     success: function(html){ 
      //do stuff 
     }    
} 

Доступ к переменной в PHP с $_POST['varName'];

Надеюсь, это поможет.

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