Comunidad de diseño web y desarrollo en internet online

usar funciones de javascript en php

Citar            
MensajeEscrito el 03 Nov 2010 05:49 pm
hola tengo una funcion declarada en un archivo js asi:
valor es entero y dato es string

Código Javascript :

function hacer(valor,dato){
   .........      
}

y en un archivo php tengo lo siguiente:

Código PHP :

........
<?php
    $dat1=23;
   $dat2="nombre";
    echo "opero con variables php y al tener resultados trato de ejecutar funcion javascript  asi:"
    ?>
   <script type="text/javascript">
         hacer(<?php echo $dat1?>,'<?php echo $dat2?>');
   </script>

y no funciona incluso intente colocar la funcion javascript con valores estaticos asi:

Código PHP :

........
<?php
    $dat1=23;
   $dat2="nombre";
    echo "opero con variables php y al tener resultados trato de ejecutar funcion javascript  asi:"
    ?>
   <script type="text/javascript">
         hacer(3,'Alfredo');
   </script>

y no funciona; pero fuera de php si funciona si lo coloco como html mas abajo si funciona... que puedo hacer??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 03 Nov 2010 06:23 pm
Hola ya note que no hay mucho problema en lo que he expuesto hasta el momento solo que este codigo esta en un for de php
y el problema es que durante la repeticion se agrega un salto de linea a la variable de cadena

forphp(){
variables php
....
llamada a funcion javascrip 1°interaccion variable php normal
2°interaccion variable php ="\n"+variable php
siguientes interacciones igual que la segunda interaccion.
.....
}fin for php
que puedo hacer para que no pase eso??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 03 Nov 2010 08:50 pm
colocalo asi

Código PHP :

<?php 
    $dat1=23; 
    $dat2="nombre"; 
    echo "opero con variables php y al tener resultados trato de ejecutar funcion javascript  asi:" ;
    echo "<script type='text/javascript'>";
    echo "hacer(".$dat1.",'".$dat2."')"; 
    echo "</script> ";
 ?>

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 03 Nov 2010 10:03 pm
que bien me parece perfecto oye y aprovechando alguna forma de hacer lo opuesto?? que una funcion javascript ejecute una de php??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 03 Nov 2010 10:33 pm
No se puede.
Para cuando estás viendo la página en tu navegador, PHP ya se terminó de ejecutar en el servidor.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Nov 2010 01:41 am

rod00x3 escribió:

que bien me parece perfecto oye y aprovechando alguna forma de hacer lo opuesto?? que una funcion javascript ejecute una de php??


Investiga sobre ajax para eso.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 05 Nov 2010 02:11 pm

DriverOp escribió:

No se puede.

FALSO!
Claro que se puede os dejo una pista en javascript

Código HTML :

      ajax=newAjax();
      ajax.open('POST','miarchivo.php',true);
      ajax.onreadystatechange=function(){
         if(ajax.readyState==4){
            obraobj.innerHTML = ajax.responseText;
         }
      }
      ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      ajax.send("variable="+variable);

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 05 Nov 2010 03:45 pm
jpcw:
Me temo que sigue siendo falso.
Literalmente no se puede ejecutar una función PHP desde JavaScript.
Lo tu código hace no es más que invocar una página a través de AJAX pero sigue siendo una típica petición HTTP, JavaScript "no sabe" lo que sucede en el servidor.
rod00x3 está preguntando si se puede hacer esto:

Código PHP :

<?php
function MiFuncion($param1, $param2) {
   return $param1 + $param2;
}
?>
<script type="text/javascript">
   alert(MiFuncion(5,4));
</script>

Donde "MiFuncion" es la función declarada en PHP.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 05 Nov 2010 03:52 pm
si exacto eso es lo que pregunto, pero bueno si no hay forma creo que la obcion de arriba de simular una llamada a la funcion es la mas ideal no?? por que tambien vi algo sobre seciones y sockets en php creen que algo de eso funcione??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 05 Nov 2010 08:12 pm
Creo que la solución es AJAX, como ha comentado jpcw, nunca probé lo que a continuación expongo pero me parece una buena idea.
Comenzaría escribiendo un archivo PHP con todas las funciones requeridas y un mecanismo que mediante parámetros GET señale qué función y con qué otros parámetros ejecutar una de las funciones PHP, y el resultado de ellas regresarlas mediante JSON (o el mecanismo que mejor convenga a cada función).
Las sesiones PHP ($_SESSION) te sirve para trasladar valores de un script PHP a otro, el mecanismo funciona bien pero sigue siendo transparente para JavaScript.
Si te refieres a websockets me temo que todavía está en pañales, solo las últimas versiones de algunos navegadores lo soportan y esto a título experimental porque el estándar aún no está completo así que no te servirá por el momento. Pero sí, en el futuro podría ser la solución más simple, más simple que AJAX incluso.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 05 Nov 2010 08:19 pm
DriverOp no seas tan pragmático , pues si a eso vamos tampoco PHP puede invocar Javascript porque lo que hace es escribir el Javascript que se va a ejecutar y PHP "no sabe" que hace Javascript con eso.

rod00x3 usa AJAX de hecho hay formas de que php imprima las variables de tal forma que javascript las entienda facilmente. Para eso busca sobre JSON.

Te recomiendo que uses el framework JQuery, es muy fácil la parte de AJAX y tiene muchísimas cosas más que hace que javascript no sea un dolor de cabeza.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 05 Nov 2010 08:44 pm

Maikel escribió:

DriverOp no seas tan pragmático , pues si a eso vamos tampoco PHP puede invocar Javascript porque lo que hace es escribir el Javascript que se va a ejecutar y PHP "no sabe" que hace Javascript con eso.

Y es cierto. PHP tampoco puede invocar JavaScript. Pero esa no era la pregunta.

Maikel escribió:

Te recomiendo que uses el framework JQuery, es muy fácil la parte de AJAX y tiene muchísimas cosas más que hace que javascript no sea un dolor de cabeza.

Suscribo a la recomendación.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.