Maikel escribió:
Código PHP :
function extractPairs( $prefix , Array $params)
{
$pairs = array();
$len = strlen($prefix);
foreach ($params as $key => $parValue)
{
if (strpos($key, $prefix) !== FALSE)
{
$pairKey = substr($key, $len);
if (is_numeric($pairKey))
{
$pairs[$pairKey] = $parValue;
}
}
}
return $pairs;
}Uso:
Código PHP :
// "valor" porque es el prefijo de "valor1", "valor2", "valorN";
// $_POST o $_GET segun como lo uses
$params = extractPairs("valor", $_POST);
print_r($params);saludos
MaikelEsta clase solo le sirve para la captura de datos en el caso de que se crearan campos dinámicos y se envíen por POST o GET lo cual solucionara su problema de captura de la información del formulario posteriormente, pero si entendí bien el problema, el lo que requiere es a partir de una base de datos generar los campos de un formulario.
antoniuskasBueno tengo que hacer notar algo >
Código PHP :
<?php
for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '<p><input type="radio" name="valor[<?php echo $i; ?>]"> value="a" .'</p>';
echo '<p><input type="radio" name="valor[<?php echo $i; ?>]"> value="b" .'</p>';
echo '<p><input type="radio" name="valor[<?php echo $i; ?>]"> value="c" .'</p>';
}
?>Si ejecutas este código te aparecerá un error en la línea 5 aproximadamente por que estas declarando una etiqueta php dentro de una etiqueta php
No hagas esto>
Código :
<?php
...
<?php ?>
...
?>
Una posible solución podría ser de estas dos formas:
____________________________________________________
Crear los campos sin consultar una base de datos y obteniendo los valores desde un arrayCódigo PHP :
<html>
<head>
</head>
<body>
<h1>AYUDITA POR FAVOR</h1>
<form method="post" action="pagina2.php">
<?php
//Este array contendria los valores
$valores = array("rojo","verde","azul", "amarillo");
$num = 1;
//foreach es el ciclo que se utiliza para recorrer array de manera práctica en php
foreach ($valores as $valor){
print "<label for=\"valor".$num."\" >Valor ".$valor." </label>";
print "<input type=\"radio\" name=\"valor\" id=\"valor".$num."\" value=\"".$valor."\"><br />\n";
$num++;
}
?>
<input type="submit" value="confirmar">
</form>
</body>
</html>Cabe resaltar varias cosas:
Primero: Si deseas crear más radios solo tienes que insertar un elemento dentro del array $valores.
Segundo: Si los input son de tipo radio tienes que tener en cuenta que el name es igual para todos los input que pertenezcan a un mismo grupo, por lo cual se debe variar el id no el name.
Tercero: Es recomendable utilizar la etiqueta
LABEL junto con el atributo
for para los textos adjuntos a los input, ya que estos permiten que sea seleccionado el radio también al cliquear el texto.
Cuarto: Utilice print pero puedes utilizar echo si gustas, es más veloz echo.
____________________________________________________
Crear los input consultando una base de datosCódigo PHP :
<html>
<head>
</head>
<body>
<h1>AYUDITA POR FAVOR</h1>
<form method="post" action="pagina2.php">
<?php
//mysql_connect sirve para conectarse a mysql, el primer parametro es el hostname, el segundo el user, el tercero el password
mysql_connect("localhost", "root", "") or die("No se pudo realizar la conexión: " . mysql_error());
//mysql_select_db sirve para determinar a que base te deseas conectar dentro de mysql
mysql_select_db("mi_base");
//La siguiente instruccion te permite generar una consulta sql y guardar los resultados dentro de una variable
$result = mysql_query("SELECT valores FROM preguntas");
//Realiza un ciclo while para recorrer todos los valores estraidos de la base
$num = 1;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<label for=\"valor".$num."\" >Valor ".$row[0]." </label>";
echo "<input type=\"radio\" name=\"valor\" id=\"valor".$num."\" value=\"".$row[0]."\"><br />\n";
$num++;
}
mysql_free_result($result);
?><br/>
<input type="submit" value="confirmar">
</form>
</body>
</html>Cabe resaltar varias cosas:
Primero: En
esutoraiki escribió:
mysql_connect("localhost", "root", "")
Tiene que poner tu hostname que por lo general puede ser localhost, tu usuario el cual puede ser distinto a root y el password el cual no siempre es vació.
Segundo: En
esutoraiki escribió:
mysql_select_db("mi_base");
Pon el nombre de tu base de datos.
----------------------------------------------------------
Si esta respuesta te generar muchas dudas revisa las funciones y código que no conozcas en
www.php.net en dicha página existe un completo tutorial en español que podrá sacarte de muchas dudas.
Un saludo