2009-07-18 3 views
0

Ich habe Kommentar-System in meiner App. Für einen einzelnen Videoeintrag kann jeder einen Kommentar posten, und jemand anders kann eine Antwort auf diesen Kommentar und Antworten posten, kann keine weiteren Wiederholungen haben, ähnlich wie StackOverflow es tut (1 Antwort und 1 oder mehr Antworten).Kommentar Antwort-Prozedur mit jquery und PHP?

Ich möchte die ähnliche Funktionalität wie SO hat, ich wir haben die HTML folgende

<div class="comment" id="comment-908"> 
    First comment 
</div> 
<div class="reply"> 
    <div id="reply-909> 
    reply 1 
    </div> 
    <div id="reply-910> 
    reply 2 
    </div> 
    <div id="reply-911> 
    reply 3 
    </div> 
</div> 
<form id="reply-form"> 
    <textarea id="replycomment" name="replycomment"></textarea> 
    <input type="submit" name="submit-reply" value="add reply" /> 
</form> 

nun über HTML eine Probe, die ich geschaffen habe, Wenn jemand auf „add Antwort“ -Schaltfläche klicken, wird dann ich bin jquery verwenden, um dort eine Antwort zu posten.

Jetzt möchte ich wissen, dass es mehrere Kommentar und mehrere Antwortformulare hinzufügen wird. Wer also auf welchen Button klickt und für welchen Kommentar jemand eine Antwort schreiben möchte, woher weiß ich das?

Das obige HTML ist nicht in der richtigen Weise, bitte schlagen Sie mir den richtigen HTML-Fluss vor, den ich verwenden kann und wie man mit jquery arbeitet?

jetzt will ich wissen, wann soe

Antwort

3

Ändern Sie den HTML-Formular etwas ähnliches zuerst:

<form class="reply-form" action="url/to/submit/123456" method="post"> 
    ... 
</form>  

Der Grund dafür ist, können Sie nicht gleiche ID für mehr als ein Element haben kann, so, Um das Problem zu vereinfachen, können Sie einfach alle Antwort-Formular in der Klasse Antwort-Formular (was einfach ist). Es ist auch eine gute Übung, die Formularaktion mit der ID hinzuzufügen, so dass selbst bei aktiviertem JavaScript/AJAX der Client noch funktionsfähig ist, wenn Sie auf die Schaltfläche zum Senden klicken.

Und dann würde der Rest der Arbeit sein (angenommen, das Formular Ajax einreichen):

$(".reply-form").each(function(){ 
    var form = $(this); 
    var submitUrl = form.attr("action"); 
    $("input:submit", form).click(function(){ 
     // implement the submit logic here. 
    }); 
});