Pregunta:
Fecha: 17-04-2019 17:03:40
(En Español)
este es la parte del formulario que corresponde al select multiple.
<td>
<select multiple="multiple" name="aP[]" id="aP" title="Seleccione los antecedentes patológicos, para seleccionar varios mantenga oprimida la tecla control">
<option value="">Seleccione</option>
<option value="hipertension_Arterial," >HTA</option>
<option value="accidente_cerebro_vascular,">ACV</option>
<option value="secuelas_de_ACV,">Secuelas de ACV</option>
<option value="DM_Tipo_I,">DM Tipo I</option>
<option value="DM_Tipo_II,">DM Tipo II</option>
<option value="cancer,"> Cancer</option>
<option value="enfermedad_acido_peptia,">Enfermedad Acido Peptica</option>
<option value="epoc,">EPOC</option>
<option value="enfermeded_pulmonar_restrictiva,">Enfermedad Pulmonar Restrictiva</option>
<option value="enfermedad_genetica,">Enfermedad o Condición Genética</option>
<option value="enfermedad_congenita,">Enfermedad o condición Congénita</option>
<option value="Infecciones,">Infecciones</option>
<option value="oAP">Otras</option>
</select>
</td>
este es el archivo controlador/insertarAP.php
<?php
require_once '../modelo/conexion.php';
require_once '../modelo/consultaInsertarAP.php';
$mensaje = null;
// capturamos las variables del formulario.
$aP= $_POST['aP'];
// creamos la variable consulta que va a corresponder al objeto consulta (lo estamos creando)
$consultas = new consultas();
// llamamos al metodo insertarAP, y como nos devuelve una cadena de caracteres lo guardamos en $mensaje
$mensaje = $consultas->insertarAP( $aP);
}
y este es el modelo/consultaInsertarAP.php
<?php
class Consultas{ // metodo para ingresar datos a la BD mediante PDO
public function insertarAP( $arg_aP){
$modelo = new Conexion(); // creamos esta variable llamada modelo
$conexion = $modelo->get_conexion(); // creamos la variable conexion y le pasamos la conexion
// ahora creamos la consulta
$sql = "insert into aPP ( aP) values(:aP)";
$statement = $conexion->prepare($sql); // preparamos la consulta con el metodo prepare, y el parametro que es la consulta misma sql
$statement->bindParam(':aP', $arg_aP);
// ahora vamos a ejecutar la consulta
if($statement->execute(array( ":aP"=>$arg_aP))){
return 'Antecedentes Personales Guardados satisfactoriamente.<br> <br> Por Favor haga click en la flecha <-- del navegador para continuar';
}else{
return " error al crear registro en la base de datos.<br> <br> Por Favor haga click en la flecha <-- del navegador para devolver ";
}
}
// hasta aqui ya introduje los datos a la tabla aPP de la BD.
para recuperar la informacion de la base de datos uso el siguiente codigo: numeroHC viene de otro formulario, es información que el usuario tiene que obligatoriamente introducir si quiere llegar aqui.
<?php
require'../class/database.php'; // llamamos al archivo que nos conecta a la base de datos
$objData = new Database(); // ya estamos conectados a la BD
$sth = $objData->prepare('SELECT * FROM aPP WHERE numeroHC = :numeroHC' );
$numeroHC = $_GET['numeroHC'];
$sth->bindParam(':numeroHC',$numeroHC);
$sth->execute();
$result = $sth->fetchAll();
// LE INDICO QUE ME MUESTRE EL RESULTADO del arreglo
//print_r($result);
?>
<table width="100%" border="4">
<?php
if($result){
for ($i=0; $i< count($result); $i++)
{
echo $result[$i]['aP']
}
};
?>
y eso es todo lo que tengo hasta ahora, he intentado de muchas maneras pero siempre el resultado es igual (array) , les agradeceria si me dan alguna luz al respecto.
mil gracias de antemano,
Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Buenas noches soy nuevo en el foro, necesito ayuda con recuperar informacion de una base de datos.[Resuelta]
tengo un formulario en Html, el cual pemite al usuario hacer un select multiple y guardar en una base de datos, posteror mente el usuario puede ver la informacion que guardó anteriormente cuando deseé claro esta haciendo clic en los botones correspondientes para ello, el problema es que realmente el usuario hace el select multiple pero lo que se guarda en la base de datos es la palabra array, y logico cuando quiero recuperar la información que el usuario seleccionó lo que me regresa es la palabra array, en conclusión no estoy logrando el objetivo que es recuperar la información.este es la parte del formulario que corresponde al select multiple.
<td>
<select multiple="multiple" name="aP[]" id="aP" title="Seleccione los antecedentes patológicos, para seleccionar varios mantenga oprimida la tecla control">
<option value="">Seleccione</option>
<option value="hipertension_Arterial," >HTA</option>
<option value="accidente_cerebro_vascular,">ACV</option>
<option value="secuelas_de_ACV,">Secuelas de ACV</option>
<option value="DM_Tipo_I,">DM Tipo I</option>
<option value="DM_Tipo_II,">DM Tipo II</option>
<option value="cancer,"> Cancer</option>
<option value="enfermedad_acido_peptia,">Enfermedad Acido Peptica</option>
<option value="epoc,">EPOC</option>
<option value="enfermeded_pulmonar_restrictiva,">Enfermedad Pulmonar Restrictiva</option>
<option value="enfermedad_genetica,">Enfermedad o Condición Genética</option>
<option value="enfermedad_congenita,">Enfermedad o condición Congénita</option>
<option value="Infecciones,">Infecciones</option>
<option value="oAP">Otras</option>
</select>
</td>
este es el archivo controlador/insertarAP.php
<?php
require_once '../modelo/conexion.php';
require_once '../modelo/consultaInsertarAP.php';
$mensaje = null;
// capturamos las variables del formulario.
$aP= $_POST['aP'];
// creamos la variable consulta que va a corresponder al objeto consulta (lo estamos creando)
$consultas = new consultas();
// llamamos al metodo insertarAP, y como nos devuelve una cadena de caracteres lo guardamos en $mensaje
$mensaje = $consultas->insertarAP( $aP);
}
y este es el modelo/consultaInsertarAP.php
<?php
class Consultas{ // metodo para ingresar datos a la BD mediante PDO
public function insertarAP( $arg_aP){
$modelo = new Conexion(); // creamos esta variable llamada modelo
$conexion = $modelo->get_conexion(); // creamos la variable conexion y le pasamos la conexion
// ahora creamos la consulta
$sql = "insert into aPP ( aP) values(:aP)";
$statement = $conexion->prepare($sql); // preparamos la consulta con el metodo prepare, y el parametro que es la consulta misma sql
$statement->bindParam(':aP', $arg_aP);
// ahora vamos a ejecutar la consulta
if($statement->execute(array( ":aP"=>$arg_aP))){
return 'Antecedentes Personales Guardados satisfactoriamente.<br> <br> Por Favor haga click en la flecha <-- del navegador para continuar';
}else{
return " error al crear registro en la base de datos.<br> <br> Por Favor haga click en la flecha <-- del navegador para devolver ";
}
}
// hasta aqui ya introduje los datos a la tabla aPP de la BD.
para recuperar la informacion de la base de datos uso el siguiente codigo: numeroHC viene de otro formulario, es información que el usuario tiene que obligatoriamente introducir si quiere llegar aqui.
<?php
require'../class/database.php'; // llamamos al archivo que nos conecta a la base de datos
$objData = new Database(); // ya estamos conectados a la BD
$sth = $objData->prepare('SELECT * FROM aPP WHERE numeroHC = :numeroHC' );
$numeroHC = $_GET['numeroHC'];
$sth->bindParam(':numeroHC',$numeroHC);
$sth->execute();
$result = $sth->fetchAll();
// LE INDICO QUE ME MUESTRE EL RESULTADO del arreglo
//print_r($result);
?>
<table width="100%" border="4">
<?php
if($result){
for ($i=0; $i< count($result); $i++)
{
echo $result[$i]['aP']
}
};
?>
y eso es todo lo que tengo hasta ahora, he intentado de muchas maneras pero siempre el resultado es igual (array) , les agradeceria si me dan alguna luz al respecto.
mil gracias de antemano,
Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 18-04-2019 09:04:46 Hola
Sucede que dice ARRAY porque es un conjunto de datos los enviado por el formulario.
Para que entiendas cómo es su lógica prueba el siguiente codigo.
Archivo: form.php
Seleccione una o más opciones del listado: <br> <form action="post.php" method="post"> <select name="opciones[]" multiple="multiple"> <option value="Opcion 1" >Option 1</option> <option value="Opcion 2">Option 2</option> <option value="Opcion 3">Option 3</option> <option value="Opcion 4">Option 4</option> <option value="Opcion 5">Option 5</option> </select> <br> <input type="submit" value ="Enviar"> </form>
Primero prueba este codigo en el archivo post.php
<?php print_r($_POST);
En el ejemplo he seleccionado las opciones:
Opcion 1
Opcion 4
Resultara algo como:
Array ( [opciones] => Array ( [0] => Opcion 1 [1] => Opcion 4 ) )
Es el resultado de todos los campos enviados por POST, Es un array!
Luego prueba reemplazando el codigo del archivo post.php por el siguiente.
<?php print_r($_POST['opciones']);
Resultara algo como:
Array ( [0] => Opcion 1 [1] => Opcion 4 )
Donde se obtiene los datos del array llamado [opciones]
Con los ejemplos anteriores podrás darte cuenta porque te guarda la palabra ARRAY
Luego reemplaza el codigo por el siguiente, para recorrer cada elemento del array del POST es decir cada valor obtenido.
Archivo: post.php
<?php $datosFormulario = $_POST['opciones']; echo 'Opciones seleccionadas:<br>'; // recorro cada elemento del array del POST, es decir cada valor del Array (arreglo) del POST foreach ($datosFormulario as $opciones){ echo $opciones.'<br>'; }
Resultara algo como:
Opciones seleccionadas:
Opcion 1
Opcion 4
Espero que te sirva el ejemplo para entender como funciona a fin de poderlo aplicar a tu script
Saludos Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
