input

Formulario enviado a PHP usando Ajax, diseño Bootstrap 4

Enviar formulario con AJAX y PHP

Enviar datos a PHP usando AJAX

En este post vamos a ver cómo enviar un formulario de HTML a PHP pero sin recargar la página, simplemente usando AJAX.

Recordemos que AJAX es una técnica que permite enviar y recibir datos de manera asíncrona, sin bloquear el hilo principal, además de ahorrar ancho de banda pues solo cargamos lo que se necesita.

Continue reading…

Leer e imprimir datos en Python 2

El uso de Python 2 sigue siendo constante, aunque ya no se recomienda y el soporte para el mismo dejará de estar disponible en una fecha muy cercana.

Sin embargo en ocasiones ya sea por curiosidad o porque estamos manteniendo código de Python 2 surge la duda de cómo leer datos por teclado y cómo imprimir datos en la terminal.

En este post vamos a ver cómo se hace en Python 2. Si tú usas Python 3 (cosa que deberías estar haciendo) entonces mira este post.

Continue reading…

Promedio de 5 materias en Python

Python: promedio de 5 calificaciones [Ejercicio resuelto]

Vamos a resolver otro ejercicio propuesto de Python para que ahora sea un ejercicio resuelto. El problema dice así:

Crear un programa en python que calcule el promedio de 5 calificaciones de un alumno. Al usuario debe solicitarle: nombre completo,  grado, grupo, nombre de las materias y la calificación de cada una.

Leeremos con input, haremos un ciclo while hasta leer el número de materias especificado en una constante y finalmente calcularemos resultados (dividiendo la sumatoria entre el número de materias) e imprimiremos.
Continue reading…

Valores flotantes en elemento input type number de HTML

Introducción

Hoy estaba interactuando con un formulario, y noté que al poner un valor flotante o con punto decimal en un input de tipo number, salía una validación que decía que me pedía introducir sólo valores enteros.

Es decir, si introducía el 1.3 no era válido, pero si ponía 1 o 2 sí lo era.

Investigando me di cuenta de que esto tiene que ver con el atributo step del input.

Demostración del error

Para que el lector entienda, intentemos introducir un valor flotante en un input de tipo número en HTML.

Si utilizamos la validación que trae por defecto, saldrá un mensaje así:

Aquí un plunker:

Claro que esto no da problemas si sólo queremos valores enteros, pero ¿qué pasa si queremos permitir valores flotantes?

Solución

Todo esto se debe a un atributo llamado step. Step es como de cuánto en cuanto puede incrementar o reducirse el número del input.

Por defecto, step es 1; así que sólo permite saltar entre múltiplos de dicho valor.

Pero si ponemos step=”0.1″ podremos aumentar de 0.1 en 0.1, y así sucesivamente.

Para poder incrementar o reducir sin límites, podemos establecer step=”any” que se traduce como “cualquiera”.

<input step="any" type="number">

Aquí un plunker:

Con esto terminamos este post.

Acceder a php // input en PHP con CodeIgniter

Introducción

No sé si sólo yo lo hago, pero cuando es necesario mandar datos complejos (no simples formularios) podemos utilizar JSON para serializarlos y luego hacer el proceso inverso del otro lado.

Pero del otro lado no leeremos a $_POST sino al stream php://input. En php puro lo hacemos con file_get_contents, pero si estamos utilizando un framework, lo tenemos que hacer a su manera.

Hoy veremos cómo obtener datos del stream php://input en CodeIgniter.

Leer php://input con la propiedad raw_input_stream

Es muy, muy fácil. Simplemente accedemos a la propiedad raw_input_stream de input. Y con eso tenemos. Así se hace:

Con eso ya podemos des-serializarlos. En mi caso, utilizo JSON, así que llamaría a la función json_decode y listo, tendría los objetos/arreglos tal y como los mandé del lado del cliente.

La ventaja que ofrece este método es que, según la documentación, podemos leerlo en cualquier momento; ya que php://input sólo puede ser leído una vez.