Foros del Web » Programando para Internet » PHP »

problema con select y for

Estas en el tema de problema con select y for en el foro de PHP en Foros del Web. hola soy nuevo en el foro asi que espero que me puedan ayudar, quiero cargar 3 select en varias filas de una tabla, los select ...
  #1 (permalink)  
Antiguo 18/03/2009, 09:31
 
Fecha de Ingreso: marzo-2009
Ubicación: GUAYAQUIL - ECUAOR
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
problema con select y for

hola soy nuevo en el foro asi que espero que me puedan ayudar, quiero cargar 3 select en varias filas de una tabla, los select estan llamados de una base de datos, el problema es que al insertarlos dentro de un for todo se repite.
alguien tiene una respuesta???? de antemano saludos y gracias
Código PHP:
<?
require("verifica.php");
$nivel_acceso =10// Nivel de acceso para esta pagina.
if ($nivel_acceso <= $_SESSION['ususario_nivel']){
    
header ("Location: $redir?error_login=5");
    exit;
}
extract($_POST);
extract($_GET);


?>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registro de cheques</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Estilo2 {
    font-size: 14px;
    font-weight: bold;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
a:active {
    text-decoration: none;
}
.Estilo6 {
    font-size: 14px
}
-->
</style>
<script src="funciones.js" ></script>
<script language="javascript">
function cerrar(){
    window.close();
}
/*--------------- validar los campos vacios_-----------*/
function valida_fac(form){
    var numeritos=form;
    <? for($p=1;$p<=$n_cheque;$p++){ $n=$p;?>
    
    if(numeritos.fecha_pago<?=$p?>.value==""){
    alert("El campo Fecha de la fila <? echo $n ?> no puede estar vacía.");
    numeritos.fecha_pago<?=$p?>.focus();
    return false;
    }
    if(numeritos.num_cheque<?=$p?>.value==""){
    alert("Por favor ingrese el numerode cheque de la fila <? echo $n ?>, no puede estar vacía.");
    numeritos.num_cheque<?=$p?>.focus();
    return false;
    }
    if(numeritos.banco<?=$p?>.value==""){
    alert("Tiene que seleccionar un banco en lafila <? echo $n ?>, no puede estar vacía.");
    numeritos.banco<?=$p?>.focus();
    return false;
    }
    if(numeritos.monto<?=$p?>.value==""){
    alert("El campo Monto de la fila <? echo $n ?> no puede estar vacía.");
    numeritos.monto<?=$p?>.focus();
    return false;
    }
<? ?>
}
function validar_numerito(form){
    var uno = form;
    if(uno.n_cheque.value == ""){
    alert("Por favor, ingrese el numero de cheques a ingresar");
    uno.n_cheque.focus();
    return false;
    }
}
</script>
</head>
<body bgcolor="#ECF9FF" bottommargin="0" leftmargin="0" marginwidth="0" rightmargin="0" topmargin="0" marginheight="0">
<?php if(!isset($_POST['reg_che'])){ ?> 
<form  name="uno" method="post" action="" >
  <table width="501" border="0" align="center" cellpadding="0" cellspacing="3">
    <tr>
      <td align="left" valign="middle" class="Titulo_principal_grande">REGISTRO DE CHEQUES</td>
      <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
      <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
    </tr>
    <tr>
      <td width="341" align="center" valign="middle"><span class="fuente_reportes"><font color="#FF0000" size="2">
        <?=$error?>
      </font></span></td>
      <td width="60" align="center" valign="middle">&nbsp;</td>
      <td width="88" align="center" valign="middle">&nbsp;</td>
    </tr>
    <tr>
      <td align="left" valign="middle"><br />
        Cuantos cheques va a registrar para esta factura?<br />
        &nbsp;</td>
      <td align="center" valign="middle"><input name="n_cheque" type="text" id="n_cheque" size="10" /></td>
      <td align="center" valign="middle"><input type="submit" name="reg_che" id="reg_che" value="Registrar" onclick="return validar_numerito(this.form);"/></td>
    </tr>
  </table></form>
  <?php } else { 
?>
<form action="<?=$_SERVER['PHP_SELF']; ?>" method="post"  name="numeritos" id="form1">
<input type="hidden" name="cr" value="<?=$cr?>" />
<input type="hidden" name="reg_che" value="1" />
<input name="n_cheque" type="hidden" value="<?=$n_cheque?>" size="10" />
<table width="800" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td width="768" align="center" valign="middle"><em><strong>Cheques por 
        <?=$cr?>
      </strong></em></td>
    </tr>
    <tr>
      <td align="center" valign="middle"><table width="721" border="0" align="center" cellpadding="0" cellspacing="2">
       
          <tr>
            <td width="119" align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td colspan="3" align="center" valign="middle" class="fuente_reportes">&nbsp;</td>
            <td width="132" align="left" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td width="127" align="left" valign="middle" class="Titulo_principal">&nbsp;</td>
          </tr>
          <tr>
            <td align="center" valign="middle" class="tabla_form Estilo2 Estilo6">Fecha de ingreso</td>
            <td width="128" align="center" valign="middle" class="tabla_form Estilo2">Fecha de <?=$f?></td>
            <td width="89" align="center" valign="middle" class="tabla_form Estilo2">Nombre del            
            <?=$crit?></td>
            <td width="112" align="center" valign="middle" class="tabla_form Estilo2">Nº Cheque</td>
            <td align="center" valign="middle" class="tabla_form Estilo2">Banco</td>
            <td align="center" valign="middle" class="tabla_form Estilo2">Monto total</td>
          </tr>
      
<? 
$selccion_bancos 
BDConexion("SELECT * FROM banco  ORDER BY Nombre ASC") or die(mysql_error());
    while(
$sel_ban mysql_fetch_array($selccion_bancos)){
        if(
$sel_ban['Valor'] == $_Banco){
            
$opt_banco .= '<option value="'.$sel_ban['Valor'].'" selected="selected">'.$sel_ban['Nombre'].'</option>'."\n";
        }else{
            
$opt_banco .= '<option value="'.$sel_ban['Valor'].'">'.$sel_ban['Nombre'].'</option>'."\n";
        }        
    }

for(
$i=1$i<=$n_cheque$i++){       
    
$fecha_in date("d-m-Y");
        
//-------------------------------------------------------
        
$fecha_pago "fecha_pago$i";
        
$_Fecha_pago = $$fecha_pago;
        
//-------------------------------------------------------
        //-------------------------------------------------------
        
$num_cheque "num_cheque$i";
        
$_Num_cheque = $$num_cheque;
        
//-------------------------------------------------------
        //-------------------------------------------------------
        
$banco "banco$i";
        
$_Banco = $$banco;
        
            
        
//-------------------------------------------------------
        //-------------------------------------------------------
        
$monto "monto$i";
        
$_Monto = $$monto;
        
//-------------------------------------------------------
/**/                
$sum_Total =  $sum_Total $_Monto;
    
?>
          <tr>
            <td height="23" align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_in<?=$i?>" type="text" id="fecha_in" style="width:84px" value="<?=$fecha_in?>" size="16" readonly="readonly"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_pago<?=$i?>" type="text" value="<? echo $_Fecha_pago?>" size="16" style="width:84px"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes">&nbsp;</td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="num_cheque<?=$i?>" type="text" id="num_cheque" style="width:110px" value="<?=$_Num_cheque?>" size="15"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><select name="banco<?=$i?>" id="banco">
              <option value="">Seleccione</option>
              <?=$opt_banco?>
            </select>            </td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="monto<?=$i?>" type="text" id="monto" size="15" style="width:84px" value="<?=$_Monto?>"/></td>
          </tr>
<? ?>      
          <tr>
            <td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td align="right" valign="middle" class="Titulo_principal"></td>
            <td align="center" valign="middle" class="Estilo2">Total cheques:</td>
            <td align="center" valign="middle" class="tabla_form"><? echo $i 1?></td>
            <td align="center" valign="middle" class="Estilo2">Total :</td>
            <td align="center" valign="middle" class="tabla_form"><? echo $sum_Total?></td>
          </tr>
          <tr>
            <td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td align="right" valign="middle" class="Titulo_principal"></td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="6" align="center" valign="middle" class="Titulo_principal"><table width="678" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="318" align="center" valign="middle"><input type="submit" name="cal_tot" id="cal_tot" value="Calcular Totales" /></td>
                  <td width="360" align="center" valign="middle"><input type="submit" name="re_cu" id="re_cu" value="Registrar Cheque" onclick="return valida_fac(this.form)"/></td>
                  <td width="360" align="center" valign="middle"><a href="javascript:cerrar()"><img src="img/cancelar.jpg" alt="Click Aqui Para Regresar o Cancelar esta Acción" width="109" height="20" border="0" align="top" /></a></td>
                </tr>
              </table></td>
          </tr>
      </table></td>
    </tr>
  </table>
</form>

  <?php ?>

</body>
</html>
  #2 (permalink)  
Antiguo 18/03/2009, 09:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con select y for

eso es un for()

es un ciclo, donde todo lo que este contenido en el... se repite!!

¿¿es necesario el for???

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/03/2009, 10:00
 
Fecha de Ingreso: marzo-2009
Ubicación: GUAYAQUIL - ECUAOR
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: problema con select y for

si, como ves es un pequeño sistema de registro el usuario elige cuantos registros va a almacenar y se generan las filas requeridas el problema es en el select la primera vez sale normal, la segunda vez, se repiten dos veces los valores dentro del select, como evito eso???

Cita:
<?php if(!isset($_POST['reg_che'])){ ?>
<form name="uno" method="post" action="" >
<table width="501" border="0" align="center" cellpadding="0" cellspacing="3">
<tr>
<td align="left" valign="middle" class="Titulo_principal_grande">REGISTRO DE CHEQUES</td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
</tr>
<tr>
<td width="341" align="center" valign="middle"><span class="fuente_reportes"><font color="#FF0000" size="2">
<?=$error; ?>
</font></span></td>
<td width="60" align="center" valign="middle">&nbsp;</td>
<td width="88" align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="middle"><br />
Cuantos cheques va a registrar para esta factura?<br />
&nbsp;</td>
<td align="center" valign="middle"><input name="n_cheque" type="text" id="n_cheque" size="10" /></td>
<td align="center" valign="middle"><input type="submit" name="reg_che" id="reg_che" value="Registrar" onclick="return validar_numerito(this.form);"/></td>
</tr>
</table></form>
<?php } else {
?>
<form action="<?=$_SERVER['PHP_SELF']; ?>" method="post" name="numeritos" id="form1">
<input type="hidden" name="cr" value="<?=$cr; ?>" />
<input type="hidden" name="reg_che" value="1" />
<input name="n_cheque" type="hidden" value="<?=$n_cheque; ?>" size="10" />
<table width="800" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td width="768" align="center" valign="middle"><em><strong>Cheques por
<?=$cr; ?>
</strong></em></td>
</tr>
<tr>
<td align="center" valign="middle"><table width="721" border="0" align="center" cellpadding="0" cellspacing="2">

<tr>
<td width="119" align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
<td colspan="3" align="center" valign="middle" class="fuente_reportes">&nbsp;</td>
<td width="132" align="left" valign="middle" class="Titulo_principal">&nbsp;</td>
<td width="127" align="left" valign="middle" class="Titulo_principal">&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle" class="tabla_form Estilo2 Estilo6">Fecha de ingreso</td>
<td width="128" align="center" valign="middle" class="tabla_form Estilo2">Fecha de <?=$f; ?></td>
<td width="89" align="center" valign="middle" class="tabla_form Estilo2">Nombre del
<?=$crit; ?></td>
<td width="112" align="center" valign="middle" class="tabla_form Estilo2">Nº Cheque</td>
<td align="center" valign="middle" class="tabla_form Estilo2">Banco</td>
<td align="center" valign="middle" class="tabla_form Estilo2">Monto total</td>
</tr>

<?


for($i=1; $i<=$n_cheque; $i++){
$fecha_in = date("d-m-Y");
//-------------------------------------------------------
$fecha_pago = "fecha_pago$i";
$_Fecha_pago = $$fecha_pago;
//-------------------------------------------------------
//-------------------------------------------------------
$num_cheque = "num_cheque$i";
$_Num_cheque = $$num_cheque;
//-------------------------------------------------------
//-------------------------------------------------------
$banco = "banco$i";
$_Banco = $$banco;
/*===================== ESTO NECESITO QUE SALGA EN TODOS LOS SELECT QUE SE RAPITEN SEGUN EL CRITERIO */
$selccion_bancos = BDConexion("SELECT * FROM banco ORDER BY Nombre ASC") or die(mysql_error());
while($sel_ban = mysql_fetch_array($selccion_bancos)){
if($sel_ban['Valor'] == $_Banco){
$opt_banco .= '<option value="'.$sel_ban['Valor'].'" selected="selected">'.$sel_ban['Nombre'].'</option>'."\n";
}else{
$opt_banco .= '<option value="'.$sel_ban['Valor'].'">'.$sel_ban['Nombre'].'</option>'."\n";
}
}

//-------------------------------------------------------
//-------------------------------------------------------
$monto = "monto$i";
$_Monto = $$monto;
//-------------------------------------------------------
/**/ $sum_Total = $sum_Total + $_Monto;

?>
<tr>
<td height="23" align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_in<?=$i; ?>" type="text" id="fecha_in" style="width:84px" value="<?=$fecha_in; ?>" size="16" readonly="readonly"/></td>
<td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_pago<?=$i; ?>" type="text" value="<? echo $_Fecha_pago; ?>" size="16" style="width:84px"/></td>
<td align="center" valign="middle" class="tabla_form fuente_reportes">&nbsp;</td>
<td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="num_cheque<?=$i; ?>" type="text" id="num_cheque" style="width:110px" value="<?=$_Num_cheque; ?>" size="15"/></td>
<td align="center" valign="middle" class="tabla_form fuente_reportes"><select name="banco<?=$i; ?>" id="banco">
<option value="">Seleccione</option>
<?=$opt_banco; ?>
</select> </td>
<td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="monto<?=$i; ?>" type="text" id="monto" size="15" style="width:84px" value="<?=$_Monto; ?>"/></td>
</tr>
<? } ?>
<tr>
<td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
<td align="right" valign="middle" class="Titulo_principal"></td>
<td align="center" valign="middle" class="Estilo2">Total cheques:</td>
<td align="center" valign="middle" class="tabla_form"><? echo $i - 1; ?></td>
<td align="center" valign="middle" class="Estilo2">Total :</td>
<td align="center" valign="middle" class="tabla_form"><? echo $sum_Total; ?></td>
</tr>
<tr>
<td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
<td align="right" valign="middle" class="Titulo_principal"></td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
<td align="center" valign="middle" class="Estilo2">&nbsp;</td>
</tr>
<tr>
<td colspan="6" align="center" valign="middle" class="Titulo_principal"><table width="678" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="318" align="center" valign="middle"><input type="submit" name="cal_tot" id="cal_tot" value="Calcular Totales" /></td>
<td width="360" align="center" valign="middle"><input type="submit" name="re_cu" id="re_cu" value="Registrar Cheque" onclick="return valida_fac(this.form)"/></td>
<td width="360" align="center" valign="middle"><a href="javascript:cerrar()"><img src="img/cancelar.jpg" alt="Click Aqui Para Regresar o Cancelar esta Acción" width="109" height="20" border="0" align="top" /></a></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</form>

<?php } ?>
  #4 (permalink)  
Antiguo 18/03/2009, 10:23
 
Fecha de Ingreso: marzo-2009
Ubicación: GUAYAQUIL - ECUAOR
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: problema con select y for

alguien que ma ayude pronto plis....

Código PHP:
for($i=1; $i<=$n_cheque; $i++){       
    $fecha_in = date("d-m-Y");
        //-------------------------------------------------------
        $fecha_pago = "fecha_pago$i";
        $_Fecha_pago = $$fecha_pago;
        //-------------------------------------------------------
        //-------------------------------------------------------
        $num_cheque = "num_cheque$i";
        $_Num_cheque = $$num_cheque;
        //-------------------------------------------------------
        //-------------------------------------------------------
        $banco = "banco$i";
        $_Banco = $$banco;
/*===================== ESTO NECESITO QUE SALGA EN TODOS LOS SELECT QUE SE RAPITEN SEGUN EL CRITERIO  */        
        $selccion_bancos = BDConexion("SELECT * FROM banco  ORDER BY Nombre ASC") or die(mysql_error());
    while($sel_ban = mysql_fetch_array($selccion_bancos)){
        if($sel_ban['Valor'] == $_Banco){
            $opt_banco .= '<option value="'.$sel_ban['Valor'].'" selected="selected">'.$sel_ban['Nombre'].'</option>'."\n";
        }else{
            $opt_banco .= '<option value="'.$sel_ban['Valor'].'">'.$sel_ban['Nombre'].'</option>'."\n";
        }        
    }
            
        //-------------------------------------------------------
        //-------------------------------------------------------
        $monto = "monto$i";
        $_Monto = $$monto;
        //-------------------------------------------------------
/**/                $sum_Total =  $sum_Total + $_Monto;
    
?>
          <tr>
            <td height="23" align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_in<?=$i?>" type="text" id="fecha_in" style="width:84px" value="<?=$fecha_in?>" size="16" readonly="readonly"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="fecha_pago<?=$i?>" type="text" value="<? echo $_Fecha_pago?>" size="16" style="width:84px"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes">&nbsp;</td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="num_cheque<?=$i?>" type="text" id="num_cheque" style="width:110px" value="<?=$_Num_cheque?>" size="15"/></td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><select name="banco<?=$i?>" id="banco">
              <option value="">Seleccione</option>
              <?=$opt_banco?>
            </select>            </td>
            <td align="center" valign="middle" class="tabla_form fuente_reportes"><input name="monto<?=$i?>" type="text" id="monto" size="15" style="width:84px" value="<?=$_Monto?>"/></td>
          </tr>
<? ?>      
          <tr>
            <td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td align="right" valign="middle" class="Titulo_principal"></td>
            <td align="center" valign="middle" class="Estilo2">Total cheques:</td>
            <td align="center" valign="middle" class="tabla_form"><? echo $i 1?></td>
            <td align="center" valign="middle" class="Estilo2">Total :</td>
            <td align="center" valign="middle" class="tabla_form"><? echo $sum_Total?></td>
          </tr>
          <tr>
            <td align="right" valign="middle" class="Titulo_principal">&nbsp;</td>
            <td align="right" valign="middle" class="Titulo_principal"></td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
            <td align="center" valign="middle" class="Estilo2">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="6" align="center" valign="middle" class="Titulo_principal"><table width="678" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="318" align="center" valign="middle"><input type="submit" name="cal_tot" id="cal_tot" value="Calcular Totales" /></td>
                  <td width="360" align="center" valign="middle"><input type="submit" name="re_cu" id="re_cu" value="Registrar Cheque" onclick="return valida_fac(this.form)"/></td>
                  <td width="360" align="center" valign="middle"><a href="javascript:cerrar()"><img src="img/cancelar.jpg" alt="Click Aqui Para Regresar o Cancelar esta Acción" width="109" height="20" border="0" align="top" /></a></td>
                </tr>
              </table></td>
          </tr>
      </table></td>
    </tr>
  </table>
</form>
  #5 (permalink)  
Antiguo 19/03/2009, 10:01
 
Fecha de Ingreso: marzo-2009
Ubicación: GUAYAQUIL - ECUAOR
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
De acuerdo Respuesta: problema con select y for

Gracias por responder pero dandole vueltas y despues de dos dias encontre el error jajaj.

GRACIAS....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:44.