Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/11/2014, 17:10
mblascog
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Buenas, yo sigo con el tema pues aún no lo he solucionado, y cuanto más hago menos entiendo.
Vuelvo a exponer el tema: controlo el click a una imagen a través de jquery. A partir de ahí, quiero visualizar una capa transparente, que ocupe toda la pantalla, con un pase de fotos.
Como en php no ha habido manera, lo he intentado con javascript, document.write, pero no consigo hacer el fondo transparente, imagino que es porqué se trata de un documento nuevo.

El código es el siguiente:
Código Javascript:
Ver original
  1. $(".wowFoto").click(function() {
  2.             var data = [];
  3.             $.each($('.wowFoto'), function () {
  4.                 data.push(this.src);
  5.             });
  6.             pase(data, ruta");
  7.         })

La función pase es esta:
Código Javascript:
Ver original
  1. function pase(fotos, ruta) {
  2.     document.write("<html");
  3.     document.write("<head>");
  4.     document.write("<link rel='stylesheet' href='" + ruta + "css/estils.css' type='text/css' media='all' />");
  5.     document.write("<!-- Start WOWSlider.com HEAD section --> <!-- add to the <head> of your page -->");
  6.     document.write("<link rel='stylesheet' type='text/css' href='" + ruta + "includes/engineWow/style.css'/>");
  7.     document.write("<script type='text/javascript' src='" + ruta + "includes/engineWow/jquery.js'></script>");
  8.     document.write("<!-- End WOWSlider.com HEAD section -->");
  9.     document.write("</head>");
  10.     document.write("<body id='passe'>");
  11.     document.write("<!-- Start WOWSlider.com BODY section --> <!-- add to the <body> of your page -->");
  12.     document.write("<div id='wowslider-container1'>");
  13.     document.write("<div class='ws_images'>");
  14.     document.write("<ul>");
  15.     for (i=0; i<fotos.length; i++) {
  16.         document.write("<li><img src=" + fotos[i] + " alt='' title='' id='wows1_" + i + "'/></li>");
  17.     }
  18.     document.write("</ul>");
  19.     document.write("</div>");
  20.     document.write("<div class='ws_bullets'>");
  21.     document.write("<div>");
  22.     for (i=0; i<fotos.length; i++) {
  23.         document.write("<a href='#'>" + i + "</a>'");
  24.     }
  25.     document.write("</div>");
  26.     document.write("</div>");
  27.     document.write("<span class='wsl'><a href='http://wowslider.com/vu'>image carousel</a> by WOWSlider.com v7.2</span>");
  28.     document.write("<div class='ws_shadow'></div>")
  29.     document.write("</div>");  
  30.     document.write("<script type='text/javascript' src='" + ruta + "includes/engineWow/wowslider.js'></script>");
  31.     document.write("<script type='text/javascript' src='" + ruta + "includes/engineWow/script.js'></script>");
  32.     document.write("<!-- End WOWSlider.com BODY section -->");
  33.     document.write("</div>");
  34.     document.write("</body>");
  35.     document.write("</head>");
  36.     document.write("</html>");
  37. }
He leído por Internet que no es una buena práctica el uso de document.write, pero no hay manera de conseguir lo mismo en php. A continuación muestro el código por si alguien ve lo que estoy haciendo:

Código Javascript:
Ver original
  1. $(".wowFoto").click(function() {
  2.             var data = [];
  3.             $.each($('.wowFoto'), function () {
  4.                 data.push(this.src);
  5.             });
  6.             $.post("<?php echo URL.'includes/inc_passe.php'?>",{prmFotos:{fotos: data}}, function(data){$('.wowFoto').html(data);})
  7.         })

Código PHP:
Ver original
  1. <?php
  2.     include "inc_config.php";
  3.     $fotos = $_POST["prmFotos"]['fotos'];
  4.     $fotos[0] = URL_HS."500190_001053_foto_1_879551311_20141021170321.jpg";
  5.     $fotos[1] = URL_HS."500190_001053_foto_2_879551311_20141021170321.jpg";
  6.     $fotos[2] = URL_HS."500190_001053_foto_3_879551311_20141021170321.jpg";
  7.     $fotos[3] = URL_HS."500190_001053_foto_4_879551311_20141021170321.jpg";
  8.     $fotos[4] = URL_HS."500190_001053_foto_5_879551311_20141021170321.jpg";
  9.     $fotos[5] = URL_HS."500190_001053_foto_6_879551311_20141021170321.jpg";
  10. ?>
  11.  
  12. <link rel="stylesheet" href="<?php echo URL.'css/estils.css'?>" type="text/css" media="all" />
  13.  
  14. <!-- Start WOWSlider.com HEAD section --> <!-- add to the <head> of your page -->
  15. <link rel="stylesheet" type="text/css" href="<?php echo URL.'includes/engineWow/style.css'?>" />
  16. <script type="text/javascript" src="<?php echo URL.'includes/engineWow/jquery.js'?>"></script>
  17. <!-- End WOWSlider.com HEAD section -->
  18.  
  19. <div id="passe">
  20.     <!-- Start WOWSlider.com BODY section --> <!-- add to the <body> of your page -->
  21.     <div id="wowslider-container1">
  22.         <div class="ws_images">
  23.             <ul>
  24. <?php               for ($i=0; $i<count($fotos); $i++) {
  25.                     echo "<li><img src=".$fotos[$i]." alt='' title='' id='wows1_".$i."'/></li>";
  26.                 } ?>
  27.             </ul>
  28.         </div>
  29.         <div class="ws_bullets">
  30.             <div>
  31. <?php               for ($i=0; $i<count($fotos); $i++) {
  32.                     echo "<a href='#'>".$i."</a>";
  33.                 } ?>
  34.             </div>
  35.         </div>
  36.         <span class="wsl"><a href="http://wowslider.com/vu">image carousel</a> by WOWSlider.com v7.2</span>
  37.         <div class="ws_shadow"></div>
  38.     </div> 
  39.     <script type="text/javascript" src="<?php echo URL.'includes/engineWow/wowslider.js'?>"></script>
  40.     <script type="text/javascript" src="<?php echo URL.'includes/engineWow/script.js'?>"></script>
  41.     <!-- End WOWSlider.com BODY section -->
  42. </div>

Aquí me pasan dos cosas y no encuentro como resolverlo:
- no hay manera de leer los datos del array, por esto lo cargo para poder hacer pruebas.
- el fondo de la capa (div id=pase) debería de ser transparente y me sale de color gris

Código CSS:
Ver original
  1. #passe{background-color:rgba(20,0,0,0.4);width:100%;height:100%;position:fixed;top:0px;left:0px;}

Si alguien puede ayudarme.
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 30/11/2014 a las 17:16