Estoy tratando de ocultar la fila del ciclo while. Quiero ocultar la fila completa cuando elimine la consulta con éxito. La consulta de eliminación funciona bien, necesito ayuda para ocultar la fila. Gracias por adelantado.
Mientras código de bucle:
Mientras Loop funciona bien. ¿Debo agregar alguna clase a la fila para eliminarla? $chcrsid es único.
while ($rowslctd=mysql_fetch_array($resultslctd)) { $chcrs=$rowslctd['chcrs']; $chcrsid=$rowslctd['chcrsid']; echo"<tbody><tr> <td>$chcrs</td> <td>$chcrsid</td> <td><form name='cancel_selection' class='cancel_selection' action=''> <input type='hidden' name='crs' class='user_id' value='$chcrs'> <input type='hidden' name='crsid' class='crsid' value='$chcrsid'> <input type='hidden' name='insertid' class='insertid' value='$insertid'> <button class='btn btn-cancel btn-xs' value='Cancel'>Cancel</button> </form></td> </tr><tbody>Eliminar código de función:
La función funciona bien, pero no oculta la fila que se elimina de la base de datos.
<script> $(function(){ $('.btn.btn-cancel').click(function(e) { e.preventDefault(); var $form = $(this).closest(".cancel_selection"); var formData = $form.serializeArray(); var userId = $form.find(".user_id").val(); var URL = "cancelselection.php"; $.post(URL, formData).done(function(data) { }); fail(function(jqXHR, textStatus, errorThrown) { }); }); }); </script>Proporcione una identificación única a la fila que desea eliminar u ocultar. Y usando jQuery puedes lograr eso con esa identificación única.
Algo como a continuación:
Código HTML
<table id="listData"> <tbody> <?php while ($rowslctd=mysql_fetch_array($resultslctd)) { $chcrs=$rowslctd['chcrs']; $chcrsid=$rowslctd['chcrsid']; echo"<tr id='row_selection_" .$chcrs. "'> <td>". $chcrs ."</td> <td>". $chcrsid ."</td> <td><form name='cancel_selection_" .$chcrs. "' id = 'cancel_selection_" .$chcrs. "' class='cancel_selection' action=''> <input type='hidden' name='crs' class='user_id' value='$chcrs'> <input type='hidden' name='crsid' class='crsid' value='$chcrsid'> <input type='hidden' name='insertid' class='insertid' value='$insertid'> <button class='btn btn-cancel btn-xs' value='Cancel'>Cancel</button> </form></td> </tr>"; <?php } ?> <tbody> </table>Sobre el éxito de AJAX
$(function(){ $('.btn.btn-cancel').click(function(e) { e.preventDefault(); var $form = $(this).closest(".cancel_selection"); var formData = $form.serializeArray(); var userId = $form.find(".user_id").val(); var URL = "cancelselection.php"; $.post(URL, formData).done(function(data) { var hideId = 'table#listData tr#row_selection_' + userId; $(hideId).remove(); // delete $(hideId).hide(); // hide }); fail(function(jqXHR, textStatus, errorThrown) { }); }); });TRY THIS <tbody> <?php while ($rowslctd=mysql_fetch_array($resultslctd)):?> <tr id="row_to_hide"> <td><?php echo $rowslctd['chcrs'];?></td> <td><?php echo $rowslctd['chcrsid'];?></td> <td> <form> <input name="id" type="hidden" value="<?php echo $rowslctd['chcrsid'];?>"> <button onclick="process_form($(this).closest('form'))">Cancel</button> </form> </td> </tr> <?php endwhile;?> </tbody> <script> function process_form(form) { form.on('submit', function(e) { e.preventDefault(); $.ajax('cancelselection.php',{ data: $(form).serialize(), type: 'POST', success: function (data) { $(form).closest('#row_to_hide').remove(); } }); }); } </script>