Mi problema es que no sé, y no encuentro info al respecto, para validar un formulario que lo tengo dentro de un ciclo do-while (en realidad son dos ciclos anidados), por lo cual el formulario se replica para cada instancia de la consulta. El jQuery que lo valida y el Ajax que envia la info sirve para el caso cuando es un sólo formulario, no formularios generados dinámicamente (me refiero generandolos usando la instancia do-while).
Por lo poco que sé (se debe notar!!) el problema es que se necesita asignar un índice, tb dinámico a la función Js para poder distinguir cada formulario.
Agradecería enormemente cualquier orientación. Si no estoy muy perdido y el tema es lo del id único, no sé como agregarlo al Script que tengo.
Adjunto mi código, a ver se se logra entender mejor.
Este extracto del código es un archivo que está inserto dentro de un ciclo do-while anidado dentro de otro ciclo do-while, la razón de eso, creo que es harina de otro costal.
Código PHP:
Ver original
<div class="new-com-bt"> <span>Write a comment ...</span> </div> <div class="new-com-cnt"> <input type="hidden" id="name-com" name="name-com" value="<?php echo ObtenerNombreFull_Usuario($_SESSION['MM_IdUser']); ?>" /> <input type="text" id="mail-com" name="mail-com" value="" placeholder="Your e-mail adress" /> <textarea class="the-new-com" placeholder="Ingresa tu comentario"></textarea> <div class="bt-add-com">Post comment</div> <div class="bt-cancel-com">Cancel</div> </div> <div class="clear"></div> </div><!-- end of comments container "cmt-container" -->
Código Javascript:
Ver original
<script type="text/javascript"> $(function(){ //alert(event.timeStamp); $('.new-com-bt').click(function(event){ $(this).hide(); $('.new-com-cnt').show(); $('#name-com').focus(); }); /* when start writing the comment activate the "add" button */ $('.the-new-com').bind('input propertychange', function() { $(".bt-add-com").css({opacity:0.6}); var checklength = $(this).val().length; if(checklength){ $(".bt-add-com").css({opacity:1}); } }); /* on clic on the cancel button */ $('.bt-cancel-com').click(function(){ $('.the-new-com').val(''); $('.new-com-cnt').fadeOut('fast', function(){ $('.new-com-bt').fadeIn('fast'); }); }); // on post comment click $('.bt-add-com').click(function(){ var theCom = $('.the-new-com'); var theName = $('#name-com'); var theMail = $('#mail-com'); if( !theCom.val()){ alert('You need to write a comment!'); }else{ $.ajax({ type: "POST", url: "ajax/add-comment.php", data: 'act=add-com&id_post='+<?php echo $id_post; ?>+'&name='+theName.val()+'&email='+theMail.val()+'&comment='+theCom.val(), success: function(html){ theCom.val(''); theMail.val(''); theName.val(''); $('.new-com-cnt').hide('fast', function(){ $('.new-com-bt').show('fast'); $('.new-com-bt').before(html); }) } }); } }); }); </script>