Que tal amigos, tengo un problema el cual es que no se como poder validar unos checkbox que genero dinamicamente.
Este es el archivo que tengo donde valido los demas campos que tengo en mi formulario y en donde quiero incluir la validacion del checkbox.
vale_entradas.js
Cita: /******************Validacion de rmreqreg***********************/
function validacion_valeentradas(frmvaleentradas) {
error = validarfolio(frmvaleentradas.txtfolio.value)
error += validarremfact(frmvaleentradas.txtremfact.value)
if (error == ""){
return true
} else {
alert(error);
return false
}
}
function validarfolio(campo) {
if (campo == ""){
return "- No se ha introducido un Folio.\n"
} else if(/[^0-9]/.test(campo)){
return "- Campo Folio debe contener solo números.\n"
} else{
return ""
}
}
function validarremfact(campo) {
if (campo == ""){
return "- No se ha introducido un número de Remisión o Factura.\n"
} else if(/[^0-9]/.test(campo)){
return "- Campo Remisión o Factura debe contener solo números.\n"
} else{
return ""
}
}
Este es el archivo php:
Código PHP:
<?php
//archivo en caso de que entren a esta pagina sin haber iniciado sesion
include('script.php');
?>
<?php # SCIRM vale de entradas - vale_entradas.php
//Se incluye el titulo y encabezado
$page_title = "SCI Vale de Entradas :: Vale de Entradas";
$page_header = "SCI Vale de Entradas :: Vale de Entradas";
$menu_title = "Opciones Vale";
$form_header = "Registro :: Vale de Entradas";
//Bandera para el cambio de menu
$menu_flag = "rmvale";
//Se incluye header y form
include ('includes/header.php');
include ('includes/form.php');
?>
<script type="text/javascript" src="Validaciones/vale_entradas.js"></script>
<?php
require('mysqli_conexion.php');
require('mysqli_conexion_rm2.php');
//se obtiene en una variable el id de vale al que se esta haciendo referencia
$idv = $_GET['idv'];
echo '<form action="vale_entradas.php?idv='.$idv.'" onsubmit="return validacion_valeentradas(this)" method="post" name="form" autocomplete="off">';
//se obtienen todos los productos del vale al que se esta haciendo referencia
$q = "SELECT idpi,cantidad FROM productos_vale WHERE idv='$idv'";
$r = mysqli_query($dbc_rm,$q);
$num = mysqli_num_rows($r);
if($num > 0){
echo 'Folio: <input name="txtfolio" value="'.$txtfolio.'" type="text" size="14" style="text-align:center"/>
Remision o Factura(N°): <input name="txtremfact" value="'.$txtremfact.'" type="text" size="14" style="text-align:center"/>
<p></p>
<table align="center" cellspacing="3" cellpadding="3" width="100%">
<tr>
<td align="center"><b>Estado</b></td>
<td width="80%" align="center"><b>Producto de Vale</b></td>
<td width="20%" align="center"><b>Cantidad</b></td>
</tr>';
while($row = mysqli_fetch_array($r)){
$idpi = $row['idpi'];
$qidpi = "SELECT descripcion FROM productos_inventario WHERE idpi='$idpi'";
$ridpi = mysqli_query($dbc_rm,$qidpi);
$rowdesc = mysqli_fetch_array($ridpi);
$desc = $rowdesc['descripcion'];
echo '<tr>
<td align="center"><input name="productos[]" type="checkbox" value="'.$idpi.'"/></td>';
//se determina la longuitud de la descripcion
$num = strlen($desc);
if($num > 36){
$tamano = 32; // tamaño máximo
$contador = 0;
$desc = $desc;
// Cortamos la cadena por los espacios
$arrayTexto = split(' ',$desc);
//se vacia la variable desc
$desc = '';
// Reconstruimos la cadena
while($tamano >= strlen($desc) + strlen($arrayTexto[$contador])){
$desc .= ' '.$arrayTexto[$contador];
$contador++;
}
$desc = $desc.'...';
}else{
$desc = $desc;
}
echo '<td align="center">'.$desc.'</td>
<td align="center"><input name="txt['.$idpi.']" value="'.$row['cantidad'].'" type="text" size="3" style="text-align:center"/></td>
</tr>';
}
echo '</table>';
}else {
echo '<p class="error">No se encuentran productos registrados para este vale</p>';
?>
<script type="text/javascript">
document.form.btnregistrar.disabled = true;
</script>
<?php
}
echo '<br><p><input type="submit" name="btnregistrar" value="Registrar"/><input type="hidden" name="submitted" value="TRUE"/></p>';
echo '</form>';
if (isset($_POST['submitted'])) {
$fecha = date('Y-m-d');
$hora= date('g:i:s');
//se insertan los registros a la tabla entradas_almacen
$qe = "INSERT INTO entradas_almacen(idv,folio,rem_fact,fecha,hora) VALUES ('$idv','$txtfolio','$txtremfact','$fecha','$hora')";
$re = mysqli_query($dbc_rm,$qe);
//Seleccionar el idea maximo insertado
$qmax = "SELECT MAX(idea) AS idea FROM entradas_almacen";
$rmax = mysqli_query($dbc_rm,$qmax);
$rowmax = mysqli_fetch_array($rmax);
$idea = $rowmax['idea'];
foreach ($_POST['productos'] as $idpi){
$cantidad = $_POST['txt'][$idpi];
//saber la cantidad anterior
$qcantant = "SELECT cantidad FROM productos_inventario WHERE idpi='$idpi'";
$rcantant = mysqli_query($dbc_rm,$qcantant);
$rowcantant = mysqli_fetch_array($rcantant);
//se insertan los registros a la tabla productos_entradas_almacen
$q = "INSERT INTO productos_entradas_almacen(idea,idpi,cantidad,existencia_inicial) VALUES ('$idea','$idpi','$cantidad','".$rowcantant['cantidad']."')";
$r = mysqli_query($dbc_rm,$q);
//se actualiza la cantidad en productos_inventario
$qac = "UPDATE productos_inventario SET cantidad = cantidad+'$cantidad' WHERE idpi='$idpi'";
$rac = mysqli_query($dbc_rm,$qac);
}
//si fue insertado manda un mensaje
if($r && $rac){
include ('includes/menu.php');
include ('includes/footer.html');
?>
<script type="text/javascript">
alert("Registro realizado!!!");
document.location.href='http://localhost/Sistema%20Precidencia%20de%20Guadalupe/rmconval.php';
</script>
<?php
} elseif(mysqli_errno($dbc_rm)==1062) { //numero de error que indica que se introdujo un valor ya existente en la base de datos
include ('includes/menu.php');
include ('includes/footer.html');
?>
<script type="text/javascript">
alert("El folio o el número de Remisíon o Factura introducido ya existe, porfavor verifica los dos campos y realiza el cambio correspondiente");
</script>
<?php
}
}
?>
<?php
if (!isset($_POST['submitted'])) {
include ('includes/menu.php');
include ('includes/footer.html');
}
?>
Espero y me puedan ayudar saludos.