Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2015, 22:49
4lb3rt0
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 10 meses
Puntos: 0
Checkbox multiples procesados con ajax

Hola amig@s, necesito obtener el ID de unos registros almacenados en una base de datos, para ello, al momento seleccionar los registros, le coloque un checkbox a cada uno con el valor del ID. Sin embargo el problema lo tengo al momento de procesar el formulario mediante AJAX, sencillamente no funciona, me muestra los ID de todos los registros seleccionados y los duplica, sin embargo, cuando no uso AJAX funciona perfectamente. A continuación les muestro el código.

Archivo que contiene el HTML y PHP que procesa.
Código:
<?php

include 'lib/db.php';
include 'lib/conf.php';
include 'lib/funciones.php';
include 'lib/session.php';

	$enlace = conectar();

	$cod_c		= $_GET['cod_c'];
	$forma 		= $_POST['forma'];
	$monto		= $_POST['monto'];
	$nro_r		= $_POST['referencia'];
	$cuenta		= $_POST['cuenta'];
	$fpago  	= traduceFecha($_POST['date']);
	
	if(strlen($monto) > 0) {
	
		foreach ($_POST['factura'] as $nro_f){
		
			echo $nro_f;
		
		}
	}
	
	$rs2 	= $enlace->query("SELECT factura.cod_factura, producto.nombre, producto.categoria, fcreacion, factura.fvence, monto FROM venta, factura,producto WHERE producto.cod_producto = venta.cod_producto AND venta.cod_venta = factura.cod_venta AND venta.cod_cliente = '$cod_c' AND factura.status = '0'");
	$count  = $rs2->num_rows;

?>			
			<script type="text/javascript">		
			   $(document).ready(function() {
					$('#mensaje').delay(2000).fadeOut(5000);
			   
				$('#date').datepicker({
					format: "dd-mm-yyyy",
					weekStart: 1,
					multidate: false,
					autoclose: true,
					todayHighlight: true
				});
			});
			</script>

			<div class="panel panel-default">
			<div class="panel-heading">
				<i class="fa fa-shopping-cart fa-fw"></i> Insertar Pago
				<div class="pull-right">
					<i class="fa fa-caret-left"></i> 
					<a href="javascript:void(0)" onclick="javascript:updateView('clientes.php')" style="margin-right:20px"> Volver </a>
					<i class="fa fa-plus"></i> 
					<a href="javascript:void(0)" onclick="javascript:updateView('blank.php')"> Principal</a>
				</div>
			</div>
			<div class="panel-body">
				<div class="panel-heading">				
					<form id="formulario" name="formulario" action="javascript:updateView('pagos_ins.php?cod_c=<?=$cod_c?></form>','formulario')" method="POST" onsubmit="javascript:return validar(this)" autocomplete="off">
						<div style="margin-top:10px;" class="input-group">
							<span  class="input-group-addon"><i style="width:10px" class="fa fa-calculator"></i></span> 
							<select name="forma" id="forma" class="form-control">
								<option value="_defa_">Método de Pago</option>
								<option value="Efectivo">Efectivo</option>
								<option value="Cheque">Cheque</option>
								<option value="Deposito">Depósito</option>
								<option value="Transferencia">Transferencia</option>
							</select>
						</div>
						
						<div style="margin-top:10px;" class="input-group">
							<span  class="input-group-addon"><i style="width:10px" class="fa fa-university"></i></span> 
							<select name="cuenta" id="cuenta" class="form-control">
								<option value="_defa_">Cuenta Bancaria</option>
								<?
									$con = $enlace->query("SELECT * FROM cuenta_bancaria") or die ("Error en la Consulta");
										  while($fila = $con->fetch_array(MYSQLI_ASSOC))
											{
												$cod_c  = $fila['cod_cuenta'];
												$banco  = $fila['banco'];
												
												echo "<option value='$cod_c'>"."$banco";
												echo "</option>";	
											}
								?>
							</select>
						</div>

						<div style="margin-top:10px;" class="input-group">
							<span  class="input-group-addon"><i style="width:10px"  class="fa fa-money"></i></span> 
							<input required type="text" name="monto" id="monto" maxlength="5" class="form-control" placeholder="Monto" onKeyPress="return(formatoCampo(this,event,1))">
						</div>

						<div style="margin-top:10px;" class="input-group">
							<span  class="input-group-addon"><i style="width:10px"  class="fa fa-keyboard-o"></i></span> 
							<input required type="text" name="referencia" id="referencia" maxlength="5" class="form-control" placeholder="Nro de Referencia" onKeyPress="return(formatoCampo(this,event,1))">
						</div>
									
						<div style="margin-top:10px;" class="input-group" id="dateRangePicker">
							<span  class="input-group-addon"><i style="width:10px" class="fa fa-calendar"></i></span> 
							<input required readonly value="<?=date('d-m-Y')?>" type="text" name="date" id="date" class="form-control">
						</div>

						<div class="table-responsive" style="margin-top:20px">
							<table class="table table-striped table-bordered table-hover">
								<thead>
									<tr>
										<th></th>
										<th>Producto</th>
										<th>Período</th>
										<th>Monto (Bs.)</th>
										<th>Estado</th>
									</tr>
								</thead>
								
								<?php 
									while ($row = $rs2->fetch_array(MYSQLI_ASSOC)) 
										{ 
											
											$cod_f        = $row["cod_factura"];
											$producto 	  = $row["nombre"];
											$categoria 	  = $row["categoria"];
											$monto	 	  = $row["monto"];
											$fcreacion 	  = traduceFecha($row["fcreacion"]);
											$fvence	  	  = traduceFecha($row["fvence"]);
											
											$alert_s = "<div class='alert-danger' style='text-align:center;padding:3px'>Por Cobrar</div>";
								?>

								<tbody>
									<tr>
										<td><input type="checkbox" name="factura[]" value="<?=$cod_f?>"/></td>
										<td><?=$categoria.": ".$producto?></td>
										<td style="text-align:center"><?=$fcreacion?><br><?=$fvence?></td>
										<td style="text-align:center"><?=$monto?></td>
										<td><?=$alert_s?></td>
									</tr>

								<? }
									if ($count == 0 ) {
										echo " <tr> ";
										echo "   <td colspan=\"7\" class=\"error\">";
										echo "   ¡No hay ventas registrados!";
										echo "   </td>";
										echo " </tr>";
									}
								?>
								</tbody>
							</table>
						</div>
						  
						<div style="text-align:center" class="panel-footer">
							<button type="submit" class="btn btn-success btn-small">Insertar</button>
							<button type="reset" class="btn btn-success btn-small">Borrar</button>
						</div>
					</form>
				</div>
			</div>

Archivo que contiene la función que procesa el formulario:

Código:
// Declaraciones

var prevHref = '';
var prevAux  = 0;



// Cargador Principal

function updateView(urlHref, form) {

    var loader  = '<div id="loader" style=\"margin-left:40px;margin-top:-25px\">'+
                     '<i class=\"fa fa-spinner fa-spin fa-4x\"></i>'+
                  '</div>';

    form        = typeof(form) != 'undefined' ? form : '';

    var tipo    = 'get';
    var datos   = '';
    var dataVal = '';


    if (form != '' ) {

        $('#'+form+' :input').each(

            function() {

                value = '';

                value   = encodeURI(this.value);
                dataVal = this.name+'='+value+'&';
                datos   = datos + dataVal;


                dataVal = this.name+'='+value+'&'
                datos   = datos + dataVal;

            }
        );

        tipo = form == 'buscador' ? 'get' : 'post';

    } else {

        var str = urlHref.split('?');
        urlHref = str[0];
        datos   = str[1];

    }

    $.ajax({
        type       : tipo,
        url        : urlHref,
        data       : datos,
        dataType   : 'html',
        cache      : false,
        beforeSend : function () {
            $("#menu").append(loader);
        },
        success    : function (html) {

            if ($("#loader").fadeOut('slow'))
                $("#loader").remove();

            $("#center").html(html);

        }
    });
}
Espero puedan ayudarme.

Gracias.

Última edición por 4lb3rt0; 14/01/2015 a las 22:51 Razón: Aclaratoria...