Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: noob2012 en 7 Enero 2017, 19:35 pm



Título: (JS y PHP) no puedo ejecutar metodo de clase JS atraves de metodo de clase PHP
Publicado por: noob2012 en 7 Enero 2017, 19:35 pm
Hola que tal, estoy intentando ejecutar en php el método de la clase javascript mensaje() y no puedo...

Código:
<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
            }

}

?>


Título: Re: (JS y PHP) no puedo ejecutar metodo de clase JS atraves de metodo de clase PHP
Publicado por: #!drvy en 7 Enero 2017, 20:52 pm
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
  1. class ClasePhp {
  2.  
  3.    public function __construct($user, $pw){
  4.        /* ..... */
  5.    }
  6.  
  7.    public function funcionPhpEjecutarFuncionJavascript(){
  8.        /* ..... */
  9.    }
  10. }



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
  1. <script src='https://code.jquery.com/jquery-3.1.1.min.js'></script>
  2.  
  3. function ClaseJavascript () {
  4.    this.mensaje = function() {
  5.        alert("Hola!!!");
  6.    }
  7. }
  8.  


Código
  1. <?php
  2.  
  3. class ClasePhp {
  4.  
  5.    public function __construct($user, $pw){
  6.        /* ...... */
  7.    }
  8.  
  9.    public function funcionPhpEjecutarFuncionJavascript(){
  10.  
  11.        echo '<script> $(function() {',
  12.             'var claseJava = new ClaseJavascript();',
  13.             'claseJava.mensaje();',
  14.             '}); </script>';
  15.  
  16.    }
  17. }
  18.  
  19. $test = new ClasePhp('usuario', 'contraseña');
  20. $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


Título: Re: (JS y PHP) no puedo ejecutar metodo de clase JS atraves de metodo de clase PHP
Publicado por: noob2012 en 7 Enero 2017, 22:27 pm
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?