This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
es:web_development:forms:inputs [2022/07/05 06:01] mag [Entrada de Texto] |
es:web_development:forms:inputs [2023/08/16 09:33] (current) |
||
---|---|---|---|
Line 90: | Line 90: | ||
< | < | ||
- | < | + | < |
<input type=" | <input type=" | ||
</ | </ | ||
Line 99: | Line 99: | ||
* Si tiene un dispositivo móvil para cargar la página, también notará que el teclado cambia automáticamente a una entrada numérica en lugar del diseño de teclado habitual. | * Si tiene un dispositivo móvil para cargar la página, también notará que el teclado cambia automáticamente a una entrada numérica en lugar del diseño de teclado habitual. | ||
+ | ==== Cuadros Desplegables ==== | ||
+ | |||
+ | * Nuestro próximo campo es la fuente del poder del héroe. Este es un tipo de categoría, donde queremos controlar las opciones que se pueden seleccionar. | ||
+ | * Para esto usamos un < | ||
+ | * Copie el siguiente código en su formulario. | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Tenemos una serie de opciones enumeradas usando etiquetas < | ||
+ | * En lugar de configurar namepara cada opción individualmente, | ||
+ | * El valor enviado a ' | ||
+ | * Guarde y cargue el archivo para ver que aparece como un cuadro desplegable. | ||
+ | * Finalmente, agregue el botón Enviar para que el formulario funcione. | ||
+ | |||
+ | < | ||
+ | |||
+ | * Guarde y cargue el archivo. | ||
+ | * Agregue algunos datos y haga clic en el botón para enviar sus datos. | ||
+ | * Tenga en cuenta que si elige ' | ||
+ | |||
+ | ==== Consulta de Base de Datos ==== | ||
+ | |||
+ | * También nos gustaría poder agregar las apariencias de cada héroe. Esto se puede hacer de varias maneras, pero vamos a crear un formulario separado para ello. | ||
+ | * Agregue un formulario debajo del existente con la misma acción (' | ||
+ | * Agregue una lista desordenada con dos entradas. | ||
+ | * La primera entrada tendrá una etiqueta de ' | ||
+ | * Para hacer esto, primero necesitaremos configurar nuestra base de datos. | ||
+ | * Agregue la siguiente línea antes de incluir el encabezado. | ||
+ | |||
+ | < | ||
+ | |||
+ | * Ahora cree un nuevo archivo llamado ' | ||
+ | |||
+ | < | ||
+ | // Configurar la conexión a la base de datos | ||
+ | define (' | ||
+ | include DBCONNECT; | ||
+ | $db = ' | ||
+ | $dsn = " | ||
+ | try | ||
+ | { // conectar | ||
+ | $pdo = new MyPDO($dsn, $db_user, $db_pass, $db_options); | ||
+ | } catch (\PDOException $e) { | ||
+ | throw new \PDOException ($e-> | ||
+ | } | ||
+ | ?></ | ||
+ | |||
+ | * En algún momento después de eso (prefiero al final del primer bloque de PHP para que todos los includecomandos estén juntos) agregue algo de código para obtener los nombres de los héroes. | ||
+ | |||
+ | < | ||
+ | $query = " | ||
+ | $args = array(); | ||
+ | $rslt = $pdo-> | ||
+ | $rslt-> | ||
+ | |||
+ | * Ahora podemos recorrer la respuesta y agregar una opción para cada una. | ||
+ | |||
+ | < | ||
+ | <label for=" | ||
+ | <select name=" | ||
+ | <?php | ||
+ | // mostrar la lista de héroes | ||
+ | while($row = $rslt-> | ||
+ | ?> | ||
+ | <option value="<? | ||
+ | <?php | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Subir el código y refrescar la página para comprobar que se muestra como queremos. | ||
+ | |||
+ | ==== Casillas de Verificación ==== | ||
+ | |||
+ | * El segundo elemento de la lista en este formulario serán las películas. | ||
+ | * También necesitaremos obtener esta lista de la base de datos. | ||
+ | * Agregue el siguiente código debajo de la consulta de héroe | ||
+ | |||
+ | < | ||
+ | $query = " | ||
+ | $args = array(); | ||
+ | $mrslt = $pdo-> | ||
+ | $mrslt-> | ||
+ | |||
+ | * Ahora muestre cada película debajo de la etiqueta ' | ||
+ | |||
+ | < | ||
+ | // mostrar lista de peliculas | ||
+ | while($row = $mrslt-> | ||
+ | ?> | ||
+ | < | ||
+ | <?php | ||
+ | } | ||
+ | ?></ | ||
+ | |||
+ | |||
+ | * Debe reconocer la mayor parte de este código, ya que es el mismo que el código anterior con algunas modificaciones. < | ||
+ | * Ahora, agreguemos la casilla de verificación | ||
+ | |||
+ | < | ||
+ | |||
+ | * Tenga en cuenta que la entrada de la casilla de verificación es muy similar a una entrada de radio. Tiene un nombre y un valor y un texto para mostrar. | ||
+ | * El nombre es ligeramente diferente. El nombre ' | ||
+ | * Cargue el código guardado y actualice la página. | ||
+ | * Debería ver una lista de películas con una casilla de verificación al frente. | ||
+ | * Desafortunadamente, | ||
+ | |||
+ | ==== GROUP BY ==== | ||
+ | |||
+ | * Para solucionar esto, echemos un vistazo directamente a la base de datos. | ||
+ | * Abra PHPMyAdmin y seleccione la tabla ' | ||
+ | * La lista de películas aparece tal como lo hizo en nuestra página, lo que dice que nuestra consulta funcionó correctamente. | ||
+ | * Nuestro problema es que realmente solo queremos ver cada película una vez. | ||
+ | * Podemos hacerlo usando 'GROUP BY' en nuestra consulta. | ||
+ | * Haga clic en la pestaña ' | ||
+ | |||
+ | < | ||
+ | |||
+ | * Obtendrá un error que indica que hay una ' | ||
+ | * Mira las líneas 4 y 5 para ver esto. Cuando agrupamos a todos los héroes que aparecen en 'Los Vengadores', | ||
+ | * Hay algunos trucos que podemos hacer con números (como probar el total) e incluso podríamos obtener solo la primera entrada, pero por ahora solo queremos el nombre de la película, así que especifíquelo en la consulta. | ||
+ | |||
+ | < | ||
+ | |||
+ | * Ejecute esta consulta y verá que obtenemos una lista de películas, cada una de las cuales aparece solo una vez. Perfecto. | ||
+ | * Ahora coloquemos esto en nuestra consulta en ' | ||
+ | |||
+ | < | ||
+ | $query = " | ||
+ | $args = array(); | ||
+ | $mrslt = $pdo-> | ||
+ | $mrslt-> | ||
+ | |||
+ | * Actualiza la página y comprueba que cada película solo aparece una vez. | ||
+ | |||
+ | ==== Agregar Película ==== | ||
+ | |||
+ | * ¿Qué hará nuestro usuario cuando quiera agregar una apariencia para una película que aún no está en la lista? | ||
+ | * Por ejemplo, Scarlet Witch aparece como una heroína, pero no aparece en ninguna de las películas de la lista. | ||
+ | * Necesitamos una línea donde el usuario pueda agregar otra película. | ||
+ | * Agregue este código después del ciclo (pero antes de la etiqueta < | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Parámetros Múltiples ==== | ||
+ | |||
+ | * Finalmente, necesitamos nuestro botón de envío antes de la etiqueta de cierre < | ||
+ | |||
+ | < | ||
+ | |||
+ | * Actualice la página, ingrese algunos datos y haga clic en enviar. | ||
+ | * Mire la URL con todos nuestros datos en ella. | ||
+ | * Tenga en cuenta que en lugar de usar comas para separar cada par de nombre/ | ||
+ | * Observe también que cuando envía un campo con dos palabras, el espacio se reemplaza por un < | ||
+ | * Ahora que tenemos todo funcionando, | ||
+ | |||
+ | ==== Codigo Final ==== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | [[es: |