Su código se divide en dos partes completamente separadas, la lado del servidor y el lado del cliente.
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Los dos lados se comunican a través de solicitudes y respuestas HTTP. PHP se ejecuta en el servidor y genera algo de HTML y quizás código JavaScript que se envía como respuesta al cliente donde se interpreta el HTML y se ejecuta el JavaScript. Una vez que PHP ha terminado de generar la respuesta, el script finaliza y no sucederá nada en el servidor hasta que ingrese una nueva solicitud HTTP.
El código de ejemplo se ejecuta así:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Paso 1, PHP ejecuta todo el código entre <?php ?>
etiquetas El resultado es este:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
los file_put_contents
la llamada no resultó en nada, solo escribió » + foo + » en un archivo. los <?php echo 42; ?>
La llamada resultó en la salida «42», que ahora está en el lugar donde solía estar ese código.
Este código HTML/JavaScript resultante ahora se envía al cliente, donde se evalúa. los alert
la llamada funciona, mientras que el foo
variable no se utiliza en ninguna parte.
Todo el código PHP se ejecuta en el servidor incluso antes de que el cliente comience a ejecutar JavaScript. No queda ningún código PHP en la respuesta con el que JavaScript pueda interactuar.
Para llamar a algún código PHP, el cliente deberá enviar una nueva solicitud HTTP al servidor. Esto puede suceder utilizando uno de los tres métodos posibles:
- Un enlace, que hace que el navegador cargue una nueva página.
- Un envío de formulario, que envía datos al servidor y carga una nueva página.
- Un AJAX request, que es una técnica de Javascript para realizar una solicitud HTTP regular al servidor (como 1. y 2. will), pero sin salir de la página actual.
Aquí hay una pregunta que describe estos métodos con mayor detalle.
También puede usar JavaScript para hacer que el navegador abra una nueva página usando window.location
o enviar un formulario, emulando las posibilidades 1. y 2.
.