Foros del Web » Programando para Internet » PHP »

Añadir filas dinamicamente. Help pls !!!

Estas en el tema de Añadir filas dinamicamente. Help pls !!! en el foro de PHP en Foros del Web. Hola gente del foro, tengo un problema que debe ser una pavada, pero no me doy cuenta de como resolverlo. Tengo un formulario por el ...
  #1 (permalink)  
Antiguo 05/08/2008, 13:45
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Pregunta Añadir filas dinamicamente. Help pls !!!

Hola gente del foro, tengo un problema que debe ser una pavada, pero no me doy cuenta de como resolverlo.

Tengo un formulario por el cual se agregan filas y puedo ingresar datos por medio de combobox, esos datos los tomo por medio de arrays.

El tema es que solo puedo mostrar la 1º fila de esos datos, no se com hacer para que me muestre el resto.
Alguien me da una ayuda ?

Gracias

Aca dejo el Codigo y el link para que vean como funciona !!!

Código PHP:
<?php
$conexion
=mysql_connect("localhost","root","000000:-)") or die("Problemas en la conexion");
mysql_select_db("empresa",$conexion) or die("Problemas en la selección de la base de datos");

if(isset(
$_POST['ok'])){


 
$a1=array($_POST['cod_pieza']);
 
$a2=array($_POST['cod_mp']);
 
$a3=array($_POST['cant_mp']);
 
$a4=array($_POST['desperdicio']);

print_r ($a1);
echo 
"<hr>";
print_r ($a2);
echo 
"<hr>";
print_r ($a3);
echo 
"<hr>";
print_r ($a4);
echo 
"<hr>";


}


?> 
<html>
<head>
<script language="JavaScript">
<!--//
var newsInputs = 1;
function addMatch(){
    var puntero = document.getElementById('tableMatchs'); //recogemos donde van a ir los nuevos campos
    newNode = document.createElement('tr'); //creamos un elemento TR para poder agregar TD's
    total = 4; //definimos cuantos inputs queremos insertar de un tiron
    newsInputs++;

    newNode.appendChild(document.createElement('td'));       // creamos un td dentro para col codigo
    newNode.lastChild.appendChild(document.createTextNode('Cliente '+newsInputs));


    for(i=0;i<total;i++){
        var num_nombre = document.getElementsByName('nombre').length; //recogemos el total de campos equipo que hay para asignar los nuevos ID's
    newNode.appendChild(document.createElement('td'));       // creamos un td dentro de newNode

        

        var nuevocampo = document.createElement('input'); //creamos un elemento input
        nuevocampo.cod_pieza = 'cod_pieza'; //le asignamos un nombre al input creado
    var nuevocampo = document.createElement('input'); //creamos un elemento input
        nuevocampo.cod_mp = 'cod_mp'; //le asignamos un nombre al input creado
        var nuevocampo = document.createElement('input'); //creamos un elemento input
        nuevocampo.cant_mp = 'cant_mp'; //le asignamos un nombre al input creado
    var nuevocampo = document.createElement('input'); //creamos un elemento input
        nuevocampo.desperdicio = 'desperdicio'; //le asignamos un nombre al input creado

        //var newEquipo = num_nombre + 1; // incrementamos el total de campos equipos para poder obtener un ID correlativo.

        //nuevocampo.codigo = 'nombre'+newEquipo; //asignamos el nuevo ID al nuevo INPUT
        newNode.lastChild.appendChild(nuevocampo); //le indicamos de quien va a ser hijo.

        inicio=document.getElementById('nextMatch');
        puntero.insertBefore(newNode,inicio);    //insertamos todos justo encima del tr con id nextMatch, almacenado en puntero.
    }

    if(newsInputs==2){//añadimos el link de borrar último partido
        newClose = document.createElement('a');
        newClose.id='delPartido';
        newClose.href='javascript:delMatch()';
        newClose.appendChild(document.createTextNode('Borrar'));
        document.getElementById('controlMatch').appendChild(newClose);
    }
    centrarContenido();//centramos el contenido de los TD's para que queden bien alineados

}

function centrarContenido(){
    var y = document.getElementById('tableMatchs').rows;
    for(a=0;a<y.length;a++){
        y[a].align='center';
    }
}

function delMatch(){
    var total = document.getElementById('tableMatchs').getElementsByTagName("tr").length-2;
    separador = document.getElementById("tableMatchs");
    separador.removeChild(separador.getElementsByTagName('tr')[total]);
    newsInputs --;
    if (newsInputs==1){
        //retirar el código para borrar la última dirección de mail
        document.getElementById("controlMatch").removeChild(document.getElementById("delPartido"));
    }
}
//-->
</script>
</head>

<body>

<form id="form" name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="1" width="380" cellspacing="2" cellpadding="0">

<?php
$result
=mysql_query("select * from prueba_smp order by codigo",$conexion);

while(
$fila mysql_fetch_array($result))   //mientras haya registros en el resultado
{
$ultimo$fila['codigo']+1;
}

?>

Codigo: >>> <b><?php echo $ultimo;?></b><br>
<tbody id="tableMatchs">
<tr>



    <td width="65">Cliente 1</td>
    <td align="center"><input type="text" name="cod_pieza[]"  value=""></td>
    <td align="center"><input type="text" name="cod_mp[]" value=""></td>
    <td align="center"><input type="text" name="cant_mp[]" value=""></td>
    <td align="center"><input type="text" name="desperdicio[]" value=""></td>
    <td><center id="controlMatch"><input type="button" Onclick="addMatch()" value="+"></center></td>

</tr> 


</tbody>
</table>
<br>


<table border="1" width="665" cellspacing="0" cellpadding="0">
    <tr>
<td><center id="controlMatch"><input type="submit" name="ok" id="ok" value="MOSTRAR">&nbsp;&nbsp;&nbsp;&nbsp;</center></td>
<td><center id="controlMatch"><input type="submit" value="LISTAR x CODIGO" onclick = "self.location.href='listado_test_arrays.php'"
 />&nbsp;&nbsp;&nbsp;&nbsp;</center></td>
</tr>
</table>

</form>
</body>
</html>
Y aca va el link, EJEMPLO
__________________
Mail: [email protected]
  #2 (permalink)  
Antiguo 05/08/2008, 14:18
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Añadir filas dinamicamente. Help pls !!!

Prueba con esto:

Código PHP:
$a1$_POST['cod_pieza']; 
 
$a2$_POST['cod_mp']; 
 
$a3$_POST['cant_mp']; 
 
$a4$_POST['desperdicio']; 

for (
$i=0$i<count($a1); $i++)
  {
    
print_r ($a1); 
    echo 
"<hr>"
    
print_r ($a2); 
    echo 
"<hr>"
    
print_r ($a3); 
    echo 
"<hr>"
    
print_r ($a4); 
    echo 
"<hr>"
  } 
  #3 (permalink)  
Antiguo 05/08/2008, 14:20
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Añadir filas dinamicamente. Help pls !!!

Sorry, mejor con esto:

Código PHP:
  $a1$_POST['cod_pieza'];
  
$a2$_POST['cod_mp']; 
  
$a3$_POST['cant_mp'];
  
$a4$_POST['desperdicio'];

for (
$i=0$i<count($a1); $i++) 
  { 
    
print_r ($a1[$i]);
    echo 
"<hr>";
    
print_r ($a2[$i]);
    echo 
"<hr>";
    
print_r ($a3[$i]);
    echo 
"<hr>";
    
print_r ($a4[$i]);
    echo 
"<hr>";
  } 
  #4 (permalink)  
Antiguo 05/08/2008, 14:33
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Añadir filas dinamicamente. Help pls !!!

Gracias Taldreakan por responder, ahi lo probe pero solo me sigue mostrando la 1º fila de datos que le ingreso. :S
__________________
Mail: [email protected]
  #5 (permalink)  
Antiguo 06/08/2008, 12:19
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Añadir filas dinamicamente. Help pls !!!

Ahora lo que me pasa es rarisimo :S
Ingreso las 2 primeras filas por ejemplo:

datos1[ ] / datos2[ ] / datos3[ ] / datos4[ ]

122 / 255 / 366 / 789 y
asd / rte / ghy / bnm

y lo que me muestra es
122 1ra dato del array dato1
255 1ra dato del array dato2
366 1ra dato del array dato3
b 1er caracter de la 2do dato de datos4

Si trabajo con una sola fila anda bien.

Aca les dejo el link para que vean la prueba :S EJEMPLO


Todavia no puedo solucionar el tema para que pueda ver, la 1er fila,la 2º fila y asi cuantas filas yo quiera ingresar, pero verlas como corresponde.

Alguno sabe como se puede solucionar ???

Gracias !!!
__________________
Mail: [email protected]

Última edición por colote; 06/08/2008 a las 12:24 Razón: ahi va
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 22:46.