2010-06-16 23 views
5

estoy usando condiciones de PHP y me gustaría saber si puedo ejecutar una función de JavaScript sin que alguien tiene que hacer clic sobre ella con ayuda de JavaScript:ejecutar una función de JavaScript desde un php if

if($value == 1)  
{ 
    JavaScript to run the function 
} 

¿Cómo puedo hacer ¿ese?

Respuesta

27

En primer lugar, tenga en cuenta que su código PHP se evalúa en el servidor, mientras que JavaScript se ejecuta en el navegador en el lado del cliente. Estas evaluaciones ocurren en diferentes lugares, en diferentes momentos. Por lo tanto, no puede llamar a una función de JavaScript desde PHP.

Sin embargo, con PHP puede procesar código HTML y JavaScript de modo que solo se represente cuando su condición de PHP sea verdadera. Tal vez es posible que desee probar algo como esto:

if($value == 1) { 
    echo "<script>"; 
    echo "alert('This is an alert from JavaScript!');"; 
    echo "</script>"; 
} 
8

Javascript es el código del lado del cliente, PHP es del lado del servidor, por lo que no puede ejecutar Javascript mientras que la construcción de la página en PHP.

Para ejecutar javascript en el lado del cliente tan pronto como se haya cargado la página, una forma de hacerlo es utilizar el cuerpo onload manejador de llamar a su función:

<?php 
echo '<script type="text/javascript">'; 
echo 'function myFunction(){ /* do_something_in_javascript */ };'; 
echo '</script>'; 

if ($value == 1) { 
    echo '<BODY onLoad="myFunction()">'; 
} 
?> 

Mejor aún, si usted puede permitirse el ancho de banda , usar jQuery y utilizar $(document).ready():

<?php 
if ($value == 1) { 
    echo '<script type="text/javascript">'; 
    echo '$(document).ready(function(){ /* do_something_in_javascript */ });'; 
    echo '</script>'; 
} 
?> 
2

me he dado cuenta que no se puede hacer algo como esto en IE y otros navegadores. Sin embargo, funciona en Firefox. Debe hacer eco de cada línea como se publicó en el otro método.

<?php 
if(somecondition) 
    { 
?> 

<script> 
Some javascript code 
</script> 

<?php 
    } 
?> 
0

Sé que este hilo es viejo, pero acabo de encontrarlo y quería agregar mi técnica.

También puede repetir la variable php en JavaScript y hacer algo en función de su valor. Lo uso para colocar los valores de la base de datos en js para que el usuario pueda hacer cálculos en la página con ellos

<script> 
var jsvar = <?php echo $phpvar ;?> 
if (jsvar = x){ do something...} 
</script> 
Cuestiones relacionadas