(JS y PHP) no puedo ejecutar metodo de clase JS atraves de metodo de clase PHP

Iniciado por noob2012, 7 Enero 2017, 19:35 PM

0 Miembros y 1 Visitante están viendo este tema.

noob2012

Hola que tal, estoy intentando ejecutar en php el método de la clase javascript mensaje() y no puedo...

<script>
$(document).ready(function(){

 
 function ClaseJavascript () {  

   this.mensaje = function() {
alert("Hola!!!");`
                                            }

                                           }
});
</script>




<?php   



function 
ClasePhp($user$pw)
    {
      function 
funcionPhpEjecutarFuncionJavascript()
        {
//quiero ejecutar aca la funcion mensaje de la ClaseJavascript
//algo asi intente pero no sirvio:
           
?>
             
<script>
              //var claseJava= new ClaseJavascript();
              // claseJava.mensaje();
</script>   
<?php
            
}

}

?>

#!drvy

Primero, intenta no mezclar PHP y javascript de esa manera. No fueron hechos para estar juntos.. al menos no tan de cerca. javascript y PHP son combinables pero exteriormente. javascript procesa datos devueltos de PHP.. PHP no usa javascript. Segundo, intenta usar las definiciones correctas para cada lenguaje. PHP tiene una manera correcta de declarar una clase.

Código (php) [Seleccionar]
class ClasePhp {

   public function __construct($user, $pw){
       /* ..... */
   }

   public function funcionPhpEjecutarFuncionJavascript(){
       /* ..... */
   }
}





Ahora, tienes un error en tu código. Al lado del cierre del alert tienes un pequeño acento (`) que se carga todo el syntax de javascript.

Por otro lado, estas usando el $ready para declarar la clase pero no para llamarla luego. Esto resulta en que la llamada se efectúa antes de la declaración y por tanto falla.

Código (html5) [Seleccionar]
<script src='https://code.jquery.com/jquery-3.1.1.min.js'></script>
<script>

function ClaseJavascript () {
    this.mensaje = function() {
        alert("Hola!!!");
    }
}

</script>



Código (php) [Seleccionar]
<?php

class ClasePhp {

    public function 
__construct($user$pw){
        
/* ...... */
    
}

    public function 
funcionPhpEjecutarFuncionJavascript(){

        echo 
'<script> $(function() {',
             
'var claseJava = new ClaseJavascript();',
             
'claseJava.mensaje();',
             
'}); </script>';

    }
}

$test = new ClasePhp('usuario''contraseña');
$test->funcionPhpEjecutarFuncionJavascript();


Pero ya te digo, eso es MUY feo. Utiliza eventos y ajax para lanzar errores. Hazte una pequeña API si hace falta. Pero no mezcles PHP y javascript.

Saludos

noob2012

Muchas  gracias, me he enterado por la web que la mejor forma de trabajar con php y javascript de la mano es atraves de AJAX, cierto? es decir php trae datos de la base de datos, y javascript manipula esos datos, correcto?