Criação dinâmica de inputs para enquete em MySQL

  • Autor Autor roduxh
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
R

roduxh

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
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 edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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
 
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.
 
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 😀

- - - Actualizado - - -

Me ha funcionado a la perfección, muchas gracias a ambos 😀, 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!
 
Voltar
Topo