Foros del Web » Programando para Internet » PHP »

Como obtener datos desde un array creado por Javascript.

Estas en el tema de Como obtener datos desde un array creado por Javascript. en el foro de PHP en Foros del Web. Hola amigos, sucede que estoy aprendiendo mediante un curso online algo de PHP, pero me ha ocurrido una situación especial (al menos para mi) y ...
  #1 (permalink)  
Antiguo 26/08/2012, 18:13
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 10 años, 8 meses
Puntos: 0
Como obtener datos desde un array creado por Javascript.

Hola amigos, sucede que estoy aprendiendo mediante un curso online algo de PHP, pero me ha ocurrido una situación especial (al menos para mi) y es que encontré un script en java que me permite agregar campos dinámicamente a mi formulario, pero no se como acceder a el desde PHP. Me los crea en un array y ya intenté recorrerlo con count, pero no me sale nada, algo estoy haciendo mal y quisiera saber, si algno de ustedes me lo podía mirar para ayudarme un poco.

Les dejo el codigo:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cotizador</title>
    <script language="javascript" type="text/javascript"> /* Abrimos etiqueta de código Javascript */

    /* Partimos por definir una variable llamada posicionCampo. Esta variable servirá como índices para marcar cuantos campos se han agregado dinámicamente. La inicializamos en 1, ya que la primera llamada ocurrirá cuando no hayan campos agregados */

    var posicionCampo=1;

    /* Declaramos la función agregarUsuario( ) */

    function agregarArticulo(){

    /* Declaramos una variable llamada nuevaFila y a ella le asignamos la recuperación del elemento HTML designado por el id tablaUsuarios. En este caso, la tabla en la que manejamos los campos dinámicamente y llamamos a la función insertRow para agregar una fila */

    nuevaFila = document.getElementById("tablaUsuarios").insertRow(-1);

    /* Asignamos a la propiedad id de nuevaFila el valor de posicionCampo, que inicializamos en 1 */

    nuevaFila.id=posicionCampo;

    /* Luego en otra variable llamada nuevaCelda, agregaremos una celda a la tabla, mediante la función insertCell */

    nuevaCelda=nuevaFila.insertCell(-1);

    /* Con la celda creada, insertamos dinámicamente un campo de texto, el cual almacenaremos en un array llamado nombre, con una posición equivalente a la variable posicionCampo. Una vez terminado, repetimos la acción para el sitio Web y correo, asignando al array respectivo */

    nuevaCelda.innerHTML="<td><input type='text' size='15' name='piezas["+posicionCampo+"]' ></td>";

    nuevaCelda=nuevaFila.insertCell(-1);

    nuevaCelda.innerHTML="<td> <input type='text' size='80' name='articulos["+posicionCampo+"]' ></td>";

    nuevaCelda=nuevaFila.insertCell(-1);

    nuevaCelda.innerHTML="<td> <input type='text' size='10' name='precio["+posicionCampo+"]' ></td>";

    /* Finalmente añadimos una última celda para las acciones y ahí agregamos un botón llamado Eliminar, el cual al ser presionado (definiendo la propiedad onClick), llamará a una función eliminarUsuario, pasando como parámetro la fila correspondiente */

    nuevaCelda=nuevaFila.insertCell(-1);

    nuevaCelda.innerHTML="<td><input type='button' value='Eliminar' onclick='eliminarUsuario(this)'></td>";

    /* Incrementamos el valor de posicionCampo para que empiece a contar de la fila siguiente */

    posicionCampo++;

    }

    /* Definimos la función eliminarUsuario, la cual se encargará de quitar la fila completa del formulario. No es necesario hacer modificaciones sobre este código */

    function eliminarUsuario(obj){

    var oTr = obj;

    while(oTr.nodeName.toLowerCase()!='tr'){

    oTr=oTr.parentNode;

    }

    var root = oTr.parentNode;

    root.removeChild(oTr);

    }

    /* Cerramos el código Javascript */

    </script>
</head>

<body>

<?

$piezas 
= array();

?>

<form id="cotizador" name="cotizador" method="post" action="validar.php">
  <p>
    <label for="Nombre">Nombre Cliente: </label>
    <input type="text" name="Nombre" id="Nombre" />
  </p>
  <p>
    <label for="textfield">Fecha: </label>
    <input type="text" name="Fecha" id="Fecha" value="<? echo date("d-m-y");?>"/>
  </p>
  

  <table id="tablaUsuarios">

    <tr>
    <td width="175">Piezas</td>
    <td width="500">Articulo</td>
    <td width="100">Precio</td>
    <td width="100">   <input type="button" onClick="agregarArticulo()" value="Añadir Producto" ></td>
    </tr>
    </table>
    <p>
      <input type="submit" name="button" id="button" value="Enviar" />
    </p>
</form>
</body>
</html>
Como pueden observar el primer array que se crea es para el numero de piezas segun se van agregando y es piezas[1], piezas[2], etc.

Esa es mi duda, como recorrer este array desde PHP o necesito definir algo más para que me lo procese?

saludos cordiales.
  #2 (permalink)  
Antiguo 26/08/2012, 21:55
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 10 años
Puntos: 214
Respuesta: Como obtener datos desde un array creado por Javascript.

<saludos>
Pues como es un array, a su vez cuando se envien los datos
hacia php, también php lo visualizará como un array, así que
si le haces un echo a la variable que recibes, tal vez te muestre
literalmente la palabra array.
Lo que tienes que hacer es entonces, tratarlo como un array php
y recorrerlo ya sea con un for o while para hacer lo que necesites,
revisa sin embargo este link para que te des una idea.
Espero te sirva la idea, suerte con eso.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 29/08/2012, 00:31
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Como obtener datos desde un array creado por Javascript.

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludos>
Pues como es un array, a su vez cuando se envien los datos
hacia php, también php lo visualizará como un array, así que
si le haces un echo a la variable que recibes, tal vez te muestre
literalmente la palabra array.
Lo que tienes que hacer es entonces, tratarlo como un array php
y recorrerlo ya sea con un for o while para hacer lo que necesites,
revisa sin embargo este link para que te des una idea.
Espero te sirva la idea, suerte con eso.
</saludos>
Muchas gracias, me sirvio muchisimo, ya casi lo tengo. Gracias!

Etiquetas: arreglito, avahtml, creado, dinamicamente
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 17:51.