Foros del Web » Programando para Internet » Javascript »

Ayuda modificar funcion javacript

Estas en el tema de Ayuda modificar funcion javacript en el foro de Javascript en Foros del Web. Hace uns odias en este mismo foro me colaboraron a hacer una uncion que lo que me permite es de unos campos de texto generados ...
  #1 (permalink)  
Antiguo 06/11/2007, 15:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Ayuda modificar funcion javacript

Hace uns odias en este mismo foro me colaboraron a hacer una uncion que lo que me permite es de unos campos de texto generados dinamicamente con PHP ir capturando el valor que se digite en ellos e irlo sumando y mostrar el resultado en un textbox aparte.

Este es el codigo.

Código HTML:
<script type="text/javascript">
<!--
function suma(){
    var camposValMantenimiento = document.Orden["ValMant"];
    var camposValMantenimiento_num = camposValMantenimiento.length;
    var total = 0;
    if(camposValMantenimiento_num == undefined)
       document.Orden["TotalValOrden"].value = document.Orden.elements[0].value; 
    else
	{
    	for(var i=0, total=0, valor; i<camposValMantenimiento_num; i++)
		{
       		valor = parseFloat( camposValMantenimiento[i].value );
        	if( !isNaN(valor) )
            	total += valor;
    	}
    	document.Orden["TotalValOrden"].value = total;
    }
}
// -->
</script> 
Este es el código PHP que genera los campos de texto:
Código PHP:
for($i=0;$i<count($_POST['ManVehiculo']);$i++)
        {
              
// Averiguo el nombre de cada uno de los mantenimientos seleccionados por el usuario.
            
$ManPreventivo NombreDato("mantpreventivo","Desc_Mantenimiento",$_POST['ManVehiculo'][$i]);
            echo 
"<tr><td class=NombresCampos colspan=2>$ManPreventivo</td>";    
            echo 
"<td align=center colspan=2><input type=text name=ValMant id=ValMant class=CamposFormulario onblur=suma() /></td></tr>";    
        } 
Como se pueden dar cuenta todos los campos de texto quedan llamandose ValMant pero deseo que el nombresea un arreglo ValMant[] o algo por el estilo debido a que esos valores quese digiten en esos campos de texto los debo recibir en otra pagina php y no lo e podido hacer dejandolo como esta.

Y es que si le cambio el nombre por ValMant[] "osea un areglo" pues me deja de funcionar la funcion ESO ES LO QUE QUIERO QUE ME AYUDEN A MODIFICAR LA FUNCIONA PARA QUE "FUNCIONE" CON EL ARREGLO
de paso si saben como puedo recibir los valores delos campos de texto generados con PHP les recomendo me ayuden tambien con eso gracias
  #2 (permalink)  
Antiguo 07/11/2007, 08:37
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Ayuda modificar funcion javacript

Hola,

en el for:

Código:
 
for($i=0;$i<count($_POST['ManVehiculo']);$i++) 
      { 
// Averiguo el nombre de cada uno de los mantenimientos seleccionados por el usuario. 
$ManPreventivo = NombreDato("mantpreventivo","Desc_Mantenimiento",$_POST['ManVehiculo'][$i]); 
          echo "<tr><td class=NombresCampos colspan=2>$ManPreventivo</td>";     
          echo "<td align=center colspan=2><input type=text name='ValMant_".$i."' id='ValMant_".$i."' class=CamposFormulario onblur=suma(".$i.") /></td></tr>";     
      }  
en la funcion:

Código:
function suma(valor){
   var nombre = "ValMant_" + valor;
   var camposValMantenimiento = document.Orden[nombre];
   var camposValMantenimiento_num = camposValMantenimiento.length;
   var total = 0;
   if(camposValMantenimiento_num == undefined)
      document.Orden["TotalValOrden"].value = document.Orden.elements[0].value; 
   else
    {
       for(var i=0, total=0, valor; i<camposValMantenimiento_num; i++)
        {
              valor = parseFloat( camposValMantenimiento.value );
           if( !isNaN(valor) )
               total += valor;
       }
       document.Orden["TotalValOrden"].value = total;
   }
}
 
 
Con eso deberia ser suficiente;

Saludos,
__________________


Última edición por pinchoso; 07/11/2007 a las 08:39 Razón: error en el post
  #3 (permalink)  
Antiguo 07/11/2007, 11:03
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Ayuda modificar funcion javacript

Mire hombre gracias pues me entendio pero no me funciono. Me esta pasando una cosa curiosa no se porque sera, en el momento que me esta intentanda mostrar el resultado de la suma me esta mostrando es el numero de la orden actual no entiendo porque si loscamposd no tienen el mismo nombre ni nada

Hay le coloco todo el codigo yuna imagen para que entienda com oes que estoy haciendo. Ayudeme a arreglarla gracias

Código PHP:
// Recibo las variables.
$PlaVehiculo = $_POST['PlaVehiculo'];
$FecOrden = $_POST['FecOrden'];
$PvdOrden = $_POST['PvdOrden'];
// Genero la fecha actual
$FecActual = date("Y-m-d");
// Verifico si se seleccionaron opciones de mantenimiento para la orden
if (count($_POST['ManVehiculo']) > 0)
{
    // Busco el Km Acumulado del vehículo.
    $BscKmAculumado = mysql_query("select * from kilometraje_acumulado where Placa='$PlaVehiculo'");
    $DatKmAculumado = mysql_fetch_array($BscKmAculumado);
    mysql_free_result($BscKmAculumado);
    $KmAculumado = $DatKmAculumado['Km_Acumulado'];
    // Creo la orden de servicio
    $CreoOrden = mysql_query("insert into orden_servicio values ('','".$PlaVehiculo."','".$FecActual."',NULL,'".$KmAculumado."',0,0,1)");
    $NumOrden = mysql_insert_id();
    if (!$CreoOrden)
        echo "<br /><br /><center><span class=MensajeResultado> No se logro crear  <br /> la Orden de Servicio </span><br /><br /><span class=MensajeVolver> Favor regrese e intentelo de nuevo </span></center>";
    else
    {
?>
<table width="550" align="center" border="1" class="Tablas">
<form name="Orden" method="post" action="Creaorden.php">
<tr>
    <td colspan="3" rowspan="2" class="Titulos">ORDEN DE SERVICIO</td>
    <td class="CamposDiferentes">
        <input type="hidden" name="NumOrden" id="NumOrden" value="<?=$NumOrden;?>" />
        <? echo $NumOrden;?>
    </td>
</tr>
<tr>     
     <td align="center"><input type="text" name="FctOrden" class="CamposFormulario" value="NUM. FACTURA" onKeyPress="return acceptNum(event)" /></td>
</tr>
<tr>
    <td class="NombreCamposDiferente">Fecha </td>
    <td class="CamposDiferentes">
           <input name="FecOrden" type="text" class="CamposFormulario" value="<?=$FecActual?>" size="10" maxlength="10" />
        <input type="hidden" name="PlaVehiculo" value="<?=$PlaVehiculo;?>" />
    </td>
    <td class="NombreCamposDiferente">Proveedor</td>
    <td>
        <select name="PvdOrden" class="CamposFormulario">
            <option value="0" selected="selected"> Seleccione </option>
            <?php
                $Proveedores 
CargarListas('proveedor','Nom_Proveedor');
                   while (
$row=mysql_fetch_array($Proveedores))
                {
                      echo 
"<option value=",$row['Nit_Proveedor'],">$row[Nom_Proveedor]</option>";
                }
            
?>       
        </select>  
    </td>
</tr>
    <?php
        
for($i=0;$i<count($_POST['ManVehiculo']);$i++)
        {
              
// Averiguo el nombre de cada uno de los mantenimientos seleccionados por el usuario.
            
$ManPreventivo NombreDato("mantpreventivo","Desc_Mantenimiento",$_POST['ManVehiculo'][$i]);
            echo 
"<tr><td class=NombresCampos colspan=2>$ManPreventivo</td>";    
             echo 
"<td align=center colspan=2><input type=text name='ValMant_".$i."' id='ValMant_".$i."' class=CamposFormulario onblur=suma(".$i.") /></td></tr>";     
         } 
    } 
}
else
    echo 
"<br><br><center><span class=MensajeResultado> No selecciono ningun mantenimiento <br /> para generar la orden de servicio  </span><br /><br /><span class=MensajeVolver> Favor regrese e intentelo de nuevo </span></center>";  
?>
<tr>
    <td class="NombreCamposDiferente" colspan="2">TOTAL</td>
    <td class="CamposDiferentes" colspan="2"><input type="text" name="TotalValOrden" id="TotalValOrden" class="CamposFormulario" /></td>
</tr>
<tr>
    <td colspan="4" align="center"><input type="submit" value="AUTORIZAR ORDEN" class="Botones" /></td> 
</tr>
</form>
</table>



Fijense que en el total de la orden me esta colocando el numero de orden que genere no se porque demonios si el campo de texto tiene otrto nombre y la variable tambien tien nombre diferente

Gracias a todos los que me ayuden
  #4 (permalink)  
Antiguo 07/11/2007, 21:15
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Ayuda modificar funcion javacript

help me please si me ayudan a cuadrar eso no los molesto mas por unos dias ya estaria acabando la aplicacion

porfa ayuda

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 01:13.