Foros del Web » Programando para Internet » PHP »

Reconocimiento de Formulario con PHP

Estas en el tema de Reconocimiento de Formulario con PHP en el foro de PHP en Foros del Web. Hola, planteo en directo mi problema: Tengo un formulario con JavaScript, el cual tiene la funcion de agregar y quitar campos, y pueden ser "n" ...
  #1 (permalink)  
Antiguo 23/09/2009, 18:10
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Reconocimiento de Formulario con PHP

Hola, planteo en directo mi problema:

Tengo un formulario con JavaScript, el cual tiene la funcion de agregar y quitar campos, y pueden ser "n" campos...

Lo que me gustaria saber, es como le puedo hacer para que PHP localice o detecte automaticamente esos "n" campos?

mi formulario es:

Código HTML:
OpcionA 1: <input type="text" name="menu1" id="menu1" /> OpcionB 1: <input type="text" name="enlace1" id="enlace1" /><br>
OpcionA 2: <input type="text" name="menu2" id="menu2" /> OpcionB 2: <input type="text" name="enlace2" id="enlace2" /><br> 
etc...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #2 (permalink)  
Antiguo 23/09/2009, 19:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Reconocimiento de Formulario con PHP

Envialos como un array usando una nomenclatura similar:
Código HTML:
Ver original
  1. <input type="text" name="nombres[]" />

Luego en PHP lo ciclas:
Código PHP:
Ver original
  1. foreach ($_POST['nombres'] as $nombre) {
  2.       echo $nombre;
  3. }

Saludos.
  #3 (permalink)  
Antiguo 23/09/2009, 21:04
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

Cita:
Iniciado por GatorV Ver Mensaje
Envialos como un array usando una nomenclatura similar:
Código HTML:
Ver original
  1. <input type="text" name="nombres[]" />

Luego en PHP lo ciclas:
Código PHP:
Ver original
  1. foreach ($_POST['nombres'] as $nombre) {
  2.       echo $nombre;
  3. }

Saludos.
Perdona mi ignorancia, pero, en mi codigo JS, tengo la funcion agregar() "por decir" y me crea un elemento 'input' y luego 'name', lo que quieres decir es que todas mis INPUT se llamen:

nombres[]

O tengo que poner mi secuencia asi:

nombres[0]
nombres[1]
nombres[etc.]

???

y luego el Codigo PHP....
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #4 (permalink)  
Antiguo 23/09/2009, 21:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Reconocimiento de Formulario con PHP

Los puedes dejar [] automaticamente PHP los reconoce como un array.

Saludos.
  #5 (permalink)  
Antiguo 23/09/2009, 21:41
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

Cita:
Iniciado por GatorV Ver Mensaje
Los puedes dejar [] automaticamente PHP los reconoce como un array.

Saludos.
Ok, lo testeo en la mañana y comento el visto bueno o malo

Gracias.
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #6 (permalink)  
Antiguo 24/09/2009, 19:50
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

HOLA, GatorV

Tu codigo no hace nada, es como si solo pusiera $_POST para 'nombre'

Es decir, solo muestra uno de todos los campos ingresados...

¿Hay otra forma o codigo?



Puse esto en mi JS code:

Cita:
function agregarCampo()
{
var x = document.getElementById("mascampos");
var campo = document.createElement("input");
campo.setAttribute('type', "text");
campo.setAttribute('name', "menu[]");
campo.setAttribute('id', "menu"+counter);
}
Es la parte que agrega mi <input type="text" name="menu[]" id="menu(1, 2, 3, etc.)" />
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.

Última edición por kuriel; 24/09/2009 a las 20:45
  #7 (permalink)  
Antiguo 24/09/2009, 21:36
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: Reconocimiento de Formulario con PHP

Hola,
Intenta hacer un dump de post:
Código php:
Ver original
  1. var_dump($_POST);
Para saber que estes resiviendo bien los campos..
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #8 (permalink)  
Antiguo 24/09/2009, 22:29
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Reconocimiento de Formulario con PHP

Yo uso formularios con cantidad variable de campos y me funciona lo de llamarlos a todos nombre[]

luego como son numericos hago un bucle tal que:

Código PHP:
$i=0;
while (
$nombre[$i]>-1) {
  echo 
$nombre[$i];
  
$i++;

  #9 (permalink)  
Antiguo 25/09/2009, 04:40
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

Cita:
Iniciado por Vun Ver Mensaje
Yo uso formularios con cantidad variable de campos y me funciona lo de llamarlos a todos nombre[]

luego como son numericos hago un bucle tal que:

Código PHP:
$i=0;
while (
$nombre[$i]>-1) {
  echo 
$nombre[$i];
  
$i++;

Me suena mas lógico, que reciba cualquiera mayor que -1, osea, desde 0 a infinito, eso pienso, pero lo vuelvo a checar y aviso si me ha funcionado.

Dices que tambien sirve "nombre[]" pero a mi no, a lo mejor falta una libreria o algo asi...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #10 (permalink)  
Antiguo 25/09/2009, 13:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Reconocimiento de Formulario con PHP

El código que puse no es para que lo uses tal cual, es para que aprendas y entiendas como recibir los campos, si usas el var_dump que te puso pato12 vas a poder ver la estructura de $_POST y ver la forma de ciclarlo.

Saludos.
  #11 (permalink)  
Antiguo 25/09/2009, 14:42
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Cita:
Iniciado por GatorV Ver Mensaje
Envialos como un array usando una nomenclatura similar:
Código HTML:
Ver original
  1. <input type="text" name="nombres[]" />

Luego en PHP lo ciclas:
Código PHP:
Ver original
  1. foreach ($_POST['nombres'] as $nombre) {
  2.       echo $nombre;
  3. }

Saludos.
Cita:
Iniciado por GatorV Ver Mensaje
El código que puse no es para que lo uses tal cual, es para que aprendas y entiendas como recibir los campos, si usas el var_dump que te puso pato12 vas a poder ver la estructura de $_POST y ver la forma de ciclarlo.

Saludos.

Jajaja... Me ofendes, claro que ya se que no se pone tal cual, tengo que adaptarlo a mis variables y a mi JavaScript...

Me falta aprender de PHP pero no soy tonto...

Pero de plano no andan estos codigos

TENGO ESTO:


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>Documento sin título</title>
</head>

<body>
<?php
if ($_POST['submit']) {
foreach (
$_POST['menu'] as $nombre) {
      echo 
$nombre;
}
}
else {
?>
<script type="text/javascript">
// AGREGAMOS O QUITAMOS CAMPOS
counter = 2;
function agregarCampo()
    {
        var x = document.getElementById("mascampos");
        var campo = document.createElement("input");
        campo.setAttribute('type', "text");
        campo.setAttribute('name', "menu[]");
        campo.setAttribute('id', "menu"+counter);
        
        var campo2 = document.createElement("input");
        campo.setAttribute('type', "text");
        campo.setAttribute('name', "enlace[]");
        campo.setAttribute('id', "enlace"+counter);
        
        var br = document.createElement("br");
        x.appendChild(document.createTextNode("Menu "+counter+": "));
        x.appendChild(campo);
        
        x.appendChild(document.createTextNode(" Enlace de menu "+counter+": "));
        x.appendChild(campo2);
        
        x.appendChild(br);
        counter++;
    }
function borrarElemento()
    {
        var x = document.getElementById("mascampos");
        x.removeChild(x.lastChild);
        x.removeChild(x.lastChild);
        x.removeChild(x.lastChild);
        x.removeChild(x.lastChild);
        x.removeChild(x.lastChild);
        counter--;
    }
    </script>
<form name="kuriel" method="post" action="1.php">
<a style="color:orange;" href="#" onClick="agregarCampo()">A&ntilde;adir un MENU</a> | <a style="color:orange;" href="#" onClick="borrarElemento()">Quitar un MENU</a></h6>
<div id="mascampos">
Menu 1: <input type="text" name="menu[]" /> Enlace de menu 1: <input type="text" name="enlace1" id="enlace1" /><br />
</div>

<input type="submit" value="submit" name="submit" />
</form>

<? 
}
?>
</body>
</html>
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.

Última edición por GatorV; 26/09/2009 a las 15:11
  #12 (permalink)  
Antiguo 25/09/2009, 22:04
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: Reconocimiento de Formulario con PHP

Hola,
Aqui esta el error:
Código javascript:
Ver original
  1. var campo2 = document.createElement("input");
  2.         campo.setAttribute('type', "text");
  3.         campo.setAttribute('name', "enlace[]");
  4.         campo.setAttribute('id', "enlace"+counter);
XD..... miralo bien... :P
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #13 (permalink)  
Antiguo 26/09/2009, 10:24
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

Cita:
Iniciado por pato12 Ver Mensaje
Hola,
Aqui esta el error:
Código javascript:
Ver original
  1. var campo2 = document.createElement("input");
  2.         campo.setAttribute('type', "text");
  3.         campo.setAttribute('name', "enlace[]");
  4.         campo.setAttribute('id', "enlace"+counter);
XD..... miralo bien... :P
Suerte
Salu2


Hmmmm.... lo que entendí de tu mensaje, es que tu piensas que enlace[] lo mande como 'menu' en PHP post...

Y no es cierto, lo que hace este codigo:

Código PHP:
        var document.getElementById("mascampos"); 
        var 
campo document.createElement("input"); 
        
campo.setAttribute('type'"text"); 
        
campo.setAttribute('name'"menu[]"); 
        
campo.setAttribute('id'"menu"+counter); 
         
        var 
campo2 document.createElement("input"); 
        
campo.setAttribute('type'"text"); 
        
campo.setAttribute('name'"enlace[]"); 
        
campo.setAttribute('id'"enlace"+counter); 
es crear 2 input, uno asi:

<input type="text" name="menu[]" id="menu1,2,3, etc." />
<input type="text" name="enlace[]" id="menu1,2,3, etc." />

Es decir, no es el NOMBRE lo que esta mal, podrian analizar otravez el codigo? gracias, no se en que esta mal...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #14 (permalink)  
Antiguo 26/09/2009, 13:05
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: Reconocimiento de Formulario con PHP

Cita:
Iniciado por kuriel Ver Mensaje




Hmmmm.... lo que entendí de tu mensaje, es que tu piensas que enlace[] lo mande como 'menu' en PHP post...

Y no es cierto, lo que hace este codigo:

Código PHP:
        var document.getElementById("mascampos"); 
        var 
campo document.createElement("input"); 
        
campo.setAttribute('type'"text"); 
        
campo.setAttribute('name'"menu[]"); 
        
campo.setAttribute('id'"menu"+counter); 
         
        var 
campo2 document.createElement("input"); 
        
campo.setAttribute('type'"text"); 
        
campo.setAttribute('name'"enlace[]"); 
        
campo.setAttribute('id'"enlace"+counter); 
es crear 2 input, uno asi:

<input type="text" name="menu[]" id="menu1,2,3, etc." />
<input type="text" name="enlace[]" id="menu1,2,3, etc." />

Es decir, no es el NOMBRE lo que esta mal, podrian analizar otravez el codigo? gracias, no se en que esta mal...
Hola,
No... miralo bien..
Código javascript:
Ver original
  1. var campo2 = document.createElement("input");
  2.         campo.setAttribute('type', "text");
  3.         campo.setAttribute('name', "enlace[]");
  4.         campo.setAttribute('id', "enlace"+counter);
Estas reasignando los datos al campo.. y deveria ser campo2:
Código javascript:
Ver original
  1. var campo2 = document.createElement("input");
  2.         campo2.setAttribute('type', "text");
  3.         campo2.setAttribute('name', "enlace[]");
  4.         campo2.setAttribute('id', "enlace"+counter);
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #15 (permalink)  
Antiguo 26/09/2009, 13:09
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Reconocimiento de Formulario con PHP

Si, ya lo habia visto, pero estas en toda la razon, gracias y resuelto...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
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 20:37.