Script para capturar lo que el usuario escribe en un campo

Ramses012 - 27/09/2020 01:05
Que tal amigos, eh estado probando diferentes ideas seguí diferentes tutoriales sobre la función keypress, pero aun estoy al 50% de mi idea, el objetivo de mi ejercicio es el siguiente:

1, capturar lo que el usuario escribe en el campo nombre, SIN que pulse en el botón enviar, intente también en el evento change, pero no tuve éxito, hasta ahora el que más se acerca al objetivo es keypress.

2, una vez logrado capturar la información del input nombre, requiero almacenar esas tecla capturadas, en una base de datos de MySQL, el reto acá, vuelvo a reiterarlo es capturar la información en la base de datos, sin que el usuario pulse en el botón "Enviar", es un formulario breve, que de hecho estaba pensando, como probablemente se almacene bastante información, no sé que me recomienden si guardar la información de una manera tradicional o darle algún formato en especial, JSON por ejemplo, acá mi código:

[CODE]






Ejercicio Practico Formulario

























































Información del teclado


Pulsa una tecla y te daré la información sobre la misma.






[/CODE]
3dpoder - 12/04/2023 11:58
Para capturar lo que el usuario escribe en el campo "nombre" sin pulsar el botón "enviar", puedes usar el evento "input" en lugar de "keypress" o "change". Además, para almacenar la información en una base de datos sin pulsar el botón "enviar", puedes hacer una llamada AJAX para enviar los datos a un script de PHP que se encargue de la inserción en la base de datos. Aquí te dejo un ejemplo de cómo hacerlo:

Código HTML con python instalado:
[CODE]
[/CODE]

Código JavaScript:

[CODE]const nombreInput = document.getElementById('nombre');
nombreInput.addEventListener('input', () => {
const nombre = nombreInput.value;
// Hacer una llamada AJAX para enviar los datos a un script de PHP
const xhr = new XMLHttpRequest();
const url = 'guardar_datos.php';
const params = `nombre=${nombre}`;
xhr.open('POST', url);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(params);
});
[/CODE]

Código PHP (guardar_datos.php):

[CODE] // Conectar a la base de datos
$servername = "localhost";
$username = "nombre_de_usuario";
$password = "contraseña";
$dbname = "nombre_de_la_base_de_datos";

$conn = new mysqli($servername, $username, $password, $dbname);

// Verificar la conexión
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

// Obtener los datos enviados por AJAX
$nombre = $_POST['nombre'];

// Insertar los datos en la base de datos
$sql = "INSERT INTO tabla (nombre) VALUES ('$nombre')";

if ($conn->query($sql) === TRUE) {
echo "Datos insertados correctamente";
} else {
echo "Error al insertar datos: " . $conn->error;
}

// Cerrar la conexión
$conn->close();
?>
[/CODE]

Ten en cuenta que debes modificar el código PHP para que se ajuste a tu base de datos y tabla específicas. Además, es importante que valides y escapees los datos que recibes del usuario para evitar ataques de inyección SQL.