Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/08/2019, 04:18
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 9 meses
Puntos: 65
Respuesta: Detectar resolución con javascript y luego activar o desactivar un include

Hola de nuevo.

La verdad es que desde entonces he estado mirando todo tipo de opciones para resolverlo, incluyendo vuestros consejos (Triby y tuadmin) pero no lo conseguía, así que finalmente creo que casi estoy consiguiendo una opción que me puede servir, donde nada más cargar la web hago el scrtip para que lea la resolución y luego enviar ese valor a php para que este a la vez luego lo envie al template y este decida si cargar los includes o no. Por ejemplo así:

En el index tengo este script que creo que me puede servir de esta dos maneras, no se cual sería la más correcta.

Opción 1 con POST y respuesta en php externo.

Código Javascript:
Ver original
  1. <!-- Opción 1 a través de POST -->
  2.  
  3. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  4. <script type="text/javascript">
  5.  
  6. var cargarInclude = 0;
  7.  
  8. $(document).ready(function(){  
  9.  
  10.     var resolucion = $( window ).width();    
  11.  
  12.     $.ajax({
  13.         type:'POST',
  14.         url:'views/modules/resolucionAjax.php',      
  15.         data: { resolucion: resolucion },
  16.         success:function(respuesta){
  17.             console.log("Respuesta de Php:" +respuesta);
  18.             //alert(respuesta);
  19.  
  20.             if(respuesta <= 767){
  21.                 console.log("La respuesta dentro de success es: No cargo include o cargo template móviles");                
  22.                 cargarInclude = 0;
  23.             }
  24.             else{
  25.                 console.log("La respuesta dentro de success es: Si cargo include o cargo template grande");              
  26.                 cargarInclude = 1;
  27.             }            
  28.            
  29.         }
  30.  
  31.     });
  32.  });
  33. </script>

Luego en resolucionAjax.php recibo los valores para que ajax los vuelva a recibir como respuesta.

Código PHP:
Ver original
  1. <?php
  2. $respuesta = $_POST["resolucion"];
  3. echo $respuesta;
  4. ?>


Opción 2 en un mismo archivo.

Código Javascript:
Ver original
  1. <!-- Opción 2 -->
  2. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  3. <script type="text/javascript">
  4.  
  5. var resolucionMoviles = false;
  6.  
  7. $(document).ready(function(){
  8.     var width = window.innerWidth;
  9.     var resolucion = $( window ).width();
  10.    
  11.     if(resolucion <= 767){
  12.         console.log("No cargo include o cargo template móviles");
  13.         cargarInclude = 0;
  14.     }
  15.     else{
  16.         console.log("Si cargo include o cargo template grande");
  17.         cargarInclude = 1;
  18.     }
  19.  });
  20. </script>

Y luego la idea sería imprimirla en el index con php y ya así con esta variable hacer el resto.

Código PHP:
Ver original
  1. <?php
  2. echo "<p>La variable cargarInclude viene desde jquery con valor: " .$cargarInclude."</p>";
  3. ?>

Pero claro no viene ningún valor ya que no se si es posible hacerlo así o como traer siguiendo estas dos opciones el valor obtenido en jquery con la variable cargarInclude para que lo lea php

¿Se puede hacer de esta manera? ¿Cómo podría pasar ese valor de jquery a php?

Gracias de nuevo por vuestra ayuda, saludos.

Última edición por kahlito; 13/08/2019 a las 04:32