Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2008, 20:39
Abdiel74
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 15 años, 8 meses
Puntos: 0
Varios form con los mismos campos en una pagina

Hola a todos,
quisiera q alguien me oriente con este problemita: Tengo una pagina en php que recibe los datos de los documentos pendientes de datos (cantidad, numeracion y en algunos casos el numero de poliza):
Código PHP:
<?php
  
for ($i=0,$n=sizeof($order->products);$i<$n;$i++) {
   echo 
'            <tr>';
   if(
$order->products[$i]['pend']>1){
    echo 
tep_draw_form('order_product_edit'.$order->products[$i]['opid'],tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO,'order_id='.$HTTP_GET_VARS['order_id'],'SSL'),'post','onSubmit="return validar(this,'.$order->products[$i]['dignum'].','.$order->products[$i]['digpol'].');"').tep_draw_hidden_field('action','process').tep_draw_hidden_field('op_id',$order->products[$i]['opid']).'<td class="main" align="right" valign="top" width="60">'.tep_draw_input_field('op_qty',$order->products[$i]['qty'],'size="5" onkeypress="return numint(event);"').'&nbsp;-</td>
             <td class="main" valign="top">'
.$order->products[$i]['name'].' ['.$order->products[$i]['model'].'] <span class="errorText">'.TEXT_PRODUCTS_PENDING.'</span>';
    if(
$order->products[$i]['dignum']>0){
     echo 
'<br>&nbsp;&nbsp;'.TEXT_PRODUCTS_NUMINI.' '.$order->products[$i]['prenum'].tep_draw_input_field('op_numini',$order->products[$i]['numini'],'size="'.$order->products[$i]['dignum'].'" maxlength="'.$order->products[$i]['dignum'].'" onkeypress="return numint(event);"').$order->products[$i]['sufnum'];
    }
    if(
$order->products[$i]['digpol']>0){
     echo 
'<br>&nbsp;&nbsp;'.TEXT_PRODUCTS_POLINI.' '.$order->products[$i]['prepol'].tep_draw_input_field('op_polini',$order->products[$i]['polini'],'size="'.$order->products[$i]['digpol'].'" maxlength="'.$order->products[$i]['digpol'].'" onkeypress="return numint(event);"').$order->products[$i]['sufpol'];
    }
    echo 
' </td>
          <td class="main">'
.tep_image_submit('button_update.gif').'</td></form>';
          <
td class="main" align="center" valign="top">'.tep_date_short($order->products[$i]['ddate']).'</td>
         <
td class="main" align="right" valign="top" width="60">'.$order->products[$i]['dqty'].'</td>
            </
tr>."\n";
  }
?>
es asi que me genera varios forms en la misma pagina. Y tengo unas funciones en javascript que parametran los input:
Código:
<script language="javascript"><!--
 function numint(evento){
  var number="0123456789";
  var tecla=evento||window.event;
  var codcar=tecla.charCode||tecla.keyCode;
  var car=String.fromCharCode(codcar);
  return number.indexOf(car)!=-1;
 }

 function validar(form,dn,dp){
  var error_message="<?php echo JS_ERROR; ?>";
  var error_found=false;
  var error_field;
  var qty=form.op_qty.value;
  var int_qty;
  if((qty=='')||(qty.length<1)||(qty==0)){
   error_message=error_message + "* \"Cantidad\" debe ser un número entero mayor a cero\n";
   error_field=form.op_qty;
   error_found=true;
  }
  if(qty.length>0){
   int_qty=parseInt(qty,10);
   if(isNaN(int_qty)){
    error_message=error_message+"* \"Cantidad\" debe ser un número entero\n";
    error_field=form.op_qty;
    error_found=true;
   }
  }else{
   int_qty=0;
  }
  if(dn>0){
   var numini=form.op_numini.value;
   var int_numini;
   if((numini=='')||(numini.length<1)||(numini==0)){
    error_message=error_message + "* \"Número Inicial\" debe ser un número entero mayor a cero\n";
    error_field=form.op_numini;
    error_found=true;
   }
   if(numini.length>0){
    int_numini=parseInt(numini,10);
    if(isNaN(int_numini)){
     error_message=error_message+"* \"Número Inicial\" debe ser un número entero\n";
     error_field=form.op_numini;
     error_found=true;
    }
   }else{
    int_numini=0;
   }
  }
  if(dp>0){
   var polini=form.op_polini.value;
   var int_polini;
   if((polini=='')||(polini.length<1)||(polini==0)){
    error_message=error_message + "* \"Póliza Inicial\" debe ser un número entero mayor a cero\n";
    error_field=form.op_polini;
    error_found=true;
   }
   if(polini.length>0){
    int_polini=parseInt(polini,10);
    if(isNaN(int_polini)){
     error_message=error_message+"* \"Póliza Inicial\" debe ser un número entero\n";
     error_field=form.op_polini;
     error_found=true;
    }
   }else{
    int_polini=0;
   }
  }
  if(error_found==false){
   return true;
  }else{
   alert(error_message);
   error_field.focus();
   return false;
  }
 }
//--></script>
Mi problema es que cuando ingreso un input en cualquiera de los form y lo envio, me cambia el valor en el resto de la pagina. trate poniendo el valor del op_id entre corchetes con las variables (ejem: op_numini[20]) pero al momento de validarlo en el java me salieron errores o no lo validaba. De que forma podria manejarlo para que no me cambie el valor de los otros form.
Gracias de antemano por cualquier ayuda...

...Edwin