No estoy seguro de entender la pregunta, pero si lo que está preguntando es: “¿Tengo que enviar datos del formulario a un script PHP separado que muestre una página en el navegador?”, Entonces la respuesta es “No”.
Tenga en cuenta que PHP se ejecuta en el servidor web, no en el navegador web del usuario.
Los formularios HTML envían datos a un controlador de formularios que se ejecuta en el servidor. El controlador de formularios, que puede escribirse en cualquier cantidad de idiomas, incluido PHP, puede devolver el contenido al navegador. El tipo de contenido devuelto depende de cómo se envió el formulario al script.
- ¿Cómo crearías un servidor?
- Entre Ruby on Rails y Grails, ¿cuál estás usando y por qué?
- ¿Cuál es la diferencia entre AngularJs y Angular 2?
- ¿Cuáles son las desventajas de AngularJS?
- ¿Qué me califica exactamente para un puesto de desarrollador web junior?
Hay dos formas básicas de manejar un envío de formulario con PHP:
- envío tradicional a un controlador de formulario (ver POST (HTTP)),
- o Ajax (ver Ajax (programación)).
El envío de formulario tradicional implica solicitar el controlador de formulario como una página web separada mientras le pasa los datos del formulario. El controlador puede generar y devolver HTML, devolver el contenido de otro archivo o redirigir el navegador a otra página. El controlador puede ser incluso la página que contiene el formulario, con un código que detecta el envío de un formulario y ejecuta el SQL apropiado.
Ajax, por otro lado, permite a un desarrollador crear páginas web que se comportan más como las aplicaciones de escritorio tradicionales. Los datos se pueden enviar a un controlador sin buscarlo físicamente, lo que significa que el navegador continúa mostrando la página del formulario durante la operación de actualización. A continuación se muestra un ejemplo rápido y sucio de un registro de visitantes que usa jQuery.
Primero, el HTML:
$ (function () {
$ (‘# myForm’). submit (function (event) {
event.preventDefault (); // Detener la navegación de la página
$ (‘# mensaje’). empty (). append (‘Working …’);
$ .ajax ({
url: $ (this) .attr (‘acción’),
datos: $ (‘# myForm’). serialize (),
tipo: ‘post’,
dataType: ‘json’,
éxito: función (respuesta) {
$ (‘# mensaje’). empty (). append (response.message);
}
});
});
});
<input id = "visitor_name" name = "visitor_name"
type = “text” size = “30” maxlength = “30”>
El script PHP (saveData.php):
<? php
// Establecer una conexión a la base de datos
requiere ‘dbconnect.php’;
$ params = array (
$ _POST [‘visitante_nombre’]
);
$ respuesta = array ();
// Guardar los datos
$ stmt = sqlsrv_query (
$ conn,
‘EJECUTAR dbo.record_visitor_sp @ visitor_name =?’,
$ params
);
if ($ stmt === false) {
$ errors = sqlsrv_errors ();
$ respuesta [‘mensaje’] = $ errores [0] [‘mensaje’];
} más {
$ response [‘message’] = ‘¡Registro guardado!’;
}
echo json_encode ($ respuesta);
Cuando el usuario hace clic en el botón Guardar o presiona Enter, se ejecuta el controlador de envío definido en la etiqueta del script. El controlador activa una solicitud de Ajax que envía los datos del formulario al script, que a su vez guarda los datos y devuelve un mensaje de estado que se muestra en la página.
¡Todo esto ocurrió sin salir de la página original!
Una ventaja de usar esta técnica es que puede controlar dinámicamente el diseño y el contenido de la página a medida que el usuario interactúa con ella, proporcionando una experiencia de usuario más rápida y fluida. Por ejemplo, un usuario puede ingresar datos en una parte de la página, mientras que otra parte se actualiza periódicamente con la nueva información que envían otros usuarios.
Ver también:
jQuery
https://en.wikipedia.org/wiki/JSON