Subir a MySql inputs dinámicos.

roduxh Seguir

Verificación en dos pasos desactivada
Desde
29 Mar 2015
Mensajes
199
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Debido a que tengo que elaborar una página donde siempre varía el número de personas a encuestar, he creado un código para ello, y pondré todo ya que todo va anidado y sin el index uno se revuelve.

index.php (Para saber cuántos inputs crear)
PHP:
<form method="POST" action="participantes.php">
		<label>Ingresa el número de participantes</label><br />
		<input type="text" id="n_part" name="n_part">
		<input type="submit" value="Ingresar" />
HASTA ACÁ TODO BIEN

participantes.php (Me crea los inputs para que se coloquen los nombres de los participantes)
PHP:
<form method="POST" action="participantes2.php">
<?php
for($i = 1; $i <= $_POST["n_part"]; $i++){
	echo "Nombre del participante: ", $i, " <input type=text id=",$i, " name=",$i,"  /><br />";
	
	}

?>
<input type="hidden" id="total" name="total" value="<?php echo $_POST["n_part"]; ?>" />
<input type="submit" value="Ingresar" />
</form>
SIN NOVEDAD, FUNCIONANDO AL 100

participantes2.php (Quiero que me envíe todos los nombres de los participantes)

PHP:
<?php 

include("conexion_db.php");

		$con = mysql_connect($host,$user,$pw)
		or die("problemas al conectar al servidor");
		
		mysql_select_db($bd,$con)
		or die("problemas al conectar a la base de datos");
		
$k = $_POST["total"];

		for($i = 1; $i <= $k; $i++){
		$j = $_POST['$i'];
		mysql_query("INSERT INTO participantes (nombres) 
		values ('$j')",$con); 	
			
		}

?> Aqui viene el error

Ya que no sé como mandar a llamar cada uno de los name de los inputs .. lo he tratado de hacer con "$j = $_POST['$i'];" pero en la base de datos me crea los campos para los participantes, pero no pone los nombres .. y si cambio el valor de $i por $a, $b o cualquier variable inexistente me hace exactamente lo mismo, entonces supongo que ahí está el problema

Saludos, muchas gracias.


Si gustan probar lo que les trato de decir, visiten Index y ahí es donde estoy testeandolo
 
Última edición:

cabalino

Beta
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Jul 2014
Mensajes
48
Estas imprimiendo un Hola en el name del input de los participante <input type="text" name="hola" />.

Revisa el codigo que enviaste en este foro vs el que esta colgado en el DEMO. El hola lo vi en el demo. Todos los input que aparecen tienen el name hola
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Lo más facil es que los mandes como array (a todos los que crees ponles el mismo nombre):
PHP:
<input type="text" name="participantes[]">

y luego en PHP recibes ese parametro y será un array con todos los valores de todos los input:
PHP:
<?php
	$participantes = $_POST['participantes'];

	foreach ($participantes as $participante) {
		$sql = "INSERT INTO participantes (nombres) VALUES('{$participante}');";
	}
?>

Saludos.
 

roduxh

Verificación en dos pasos desactivada
Desde
29 Mar 2015
Mensajes
199
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Estas imprimiendo un Hola en el name del input de los participante <input type="text" name="hola" />.

Revisa el codigo que enviaste en este foro vs el que esta colgado en el DEMO. El hola lo vi en el demo. Todos los input que aparecen tienen el name hola

Muchas gracias Cabalino, fueron las últimas pruebas de ayer y se me olvidó cambiarlo a cuando funcionaba.

- - - Actualizado - - -

Lo más facil es que los mandes como array (a todos los que crees ponles el mismo nombre):
PHP:
<input type="text" name="participantes[]">

y luego en PHP recibes ese parametro y será un array con todos los valores de todos los input:
PHP:
<?php
	$participantes = $_POST['participantes'];

	foreach ($participantes as $participante) {
		$sql = "INSERT INTO participantes (nombres) VALUES('{$participante}');";
	}
?>

Saludos.

Lo probaré ahora mismo, ya te cuento :D

- - - Actualizado - - -

Me ha funcionado a la perfección, muchas gracias a ambos :D, ha quedado así, por si a alguien le pudiera servir:

PHP:
	<?php 
include("conexion_db.php");

		$con = mysql_connect($host,$user,$pw)
		or die("problemas al conectar al servidor");
		
		mysql_select_db($bd,$con)
		or die("problemas al conectar a la base de datos");
		

 $participantes = $_POST['participantes'];

    foreach ($participantes as $participante) {
        mysql_query("INSERT INTO participantes (nombres) 
		VALUES('{$participante}')",$con);
    }
?>

Saludos, GRACIAS!
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba