2010-03-04 12 views
17

Estoy tratando de incluir variables JavaScript en el código PHP como variables de PHP, pero estoy teniendo problemas para hacerlo. Cuando se hace clic en un botón, se llama a la siguiente función:¿Cómo puedo usar una variable de JavaScript como una variable de PHP?

<script type="text/javascript"> 
    function addTraining(leve, name, date) 
    { 
     var level_var = document.getElementById(leve); 
     var training_name_var = document.getElementById(name); 
     var training_date_var = document.getElementById(date); 

     <?php 
      $result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible."); 
     ?> 

</script> 

¿Es posible?

+1

Leer esto de cliente vs lado del servidor: ¿Puede http://stackoverflow.com/questions/2034501/how-does-php-work –

Respuesta

36

PHP se ejecuta en el servidor. JavaScript se ejecuta en el lado del cliente en el navegador del usuario que solicita la página. Para cuando se ejecuta JavaScript, no hay acceso a PHP en el servidor en absoluto. Por favor, lea este artículo con detalles sobre client-side vs server-side coding.

¿Qué ocurre en pocas palabras es la siguiente:

  • Hace clic en un enlace en su navegador en el ordenador en su escritorio
  • El navegador crea una petición HTTP y lo envía a un servidor en Internet
  • el servidor comprueba si puede manejar la petición
  • Si la petición es para una página PHP, se inicia el intérprete de PHP
  • el intérprete PHP ejecutar todo el código PHP en la página que reques Ted
  • El intérprete PHP no se ejecutará ningún código JS, ya que no tiene ni idea de que
  • el servidor enviará la página ensamblada por el intérprete de nuevo a su navegador
  • Su navegador hará que la página y mostrarla a que
  • JavaScript se ejecuta en el ordenador

en su caso, PHP escribir el código JS en la página, para que pueda ser ejecutado cuando la página se representa en su navegador. En ese momento, la parte PHP en su fragmento JS ya no existe. Ya se ejecutó en el servidor. Creó una variable $result que contenía una cadena de consulta SQL. No lo usaste, así que cuando la página se envía de vuelta a tu navegador, ya no está. Eche un vistazo al código fuente cuando la página se represente en su navegador. Verás que no hay nada en la posición en la que colocas el código PHP.

La única manera de hacer lo que está buscando que hacer es o bien:

  • hacer una redirección a un script PHP o
  • hacer una llamada AJAX a un script PHP

con los valores que desea insertar en la base de datos.

4

Parece que confunde el código del lado del cliente y del servidor. Cuando se hace clic en el botón, debe enviar (publicar, obtener) las variables al servidor donde se puede ejecutar php. Puede enviar la página o usar una llamada ajax para enviar solo los datos. -don

3

PHP se ejecuta en el servidor. Muestra un texto (por lo general). Esto es analizado por el cliente.

Durante y después del análisis en el cliente, se ejecuta JavaScript. En esta etapa, es demasiado tarde para que el script PHP haga algo.

Si desea obtener nada a cambio a PHP que necesita para hacer una nueva petición HTTP e incluir los datos en él (ya sea en la cadena de consulta (GET datos) o cuerpo del mensaje (datos POST).

Usted puede hacer esto por:

  • ubicación Marco (GET solamente)
  • enviar un formulario (con el método FormElement.submit())
  • Uso de la XMLHttpRequest objeto (la técnica comúnmente conocido como Ajax) diversas bibliotecas hacen algunos de. th Levanta cosas pesadas para ti aquí, por ej. YUI o jQuery.

Cualquiera que sea la opción que elija, el PHP es esencialmente el mismo. Lea desde $_GET o $_POST, ejecute el código de su base de datos, luego regrese algunos datos al cliente.

0

Puedes hacer lo que quieras, pero no así. Lo que debe hacer es realizar una solicitud de AJAX desde JavaScript al servidor donde un script PHP separado puede hacer la operación de la base de datos.

1

Tuve el mismo problema hace unas semanas que el tuyo; pero inventé una solución brillante para intercambiar variables entre PHP y JavaScript. A mí me funcionó bien:

  1. Crear una forma oculta de una página HTML

  2. Crear un cuadro de texto o la caja de texto en esa forma oculta

  3. Después de todo el código escrito en el guión, almacenar el valor final de la variable en el cuadro de texto que

  4. uso $ _REQUEST [ 'nombre de cuadro de texto'] línea en su PHP para obtener acceso al valor de la variable de JavaScript.

Espero que este truco funcione para usted.

+0

por favor da un ejemplo de trabajo –

16
<script type="text/javascript"> 
var jvalue = 'this is javascript value'; 

<?php $abc = "<script>document.write(jvalue)</script>"?> 
</script> 
<?php echo 'php_'.$abc;?> 
+8

Esto está mal en muchos niveles, y engañoso –

+3

esto ni siquiera es una respuesta – argentum47

+2

Está funcionando bien entonces ¿por qué no es una respuesta @ argentum47 –

1

Usted puede tomar todos los valores de la siguiente manera:

$abc = "<script>document.getElementByID('yourid').value</script>"; 
+0

Te utilicé y trabajé. No sé si es una forma recomendada sin embargo. – user1919

+0

No funciona para mí ... ¿Hay alguna otra forma, por favor ...? :) –

Cuestiones relacionadas