Foros del Web » Programando para Internet » PHP »

Ejecutar código php según parámetros

Estas en el tema de Ejecutar código php según parámetros en el foro de PHP en Foros del Web. Buenas, No sé si lo estoy haciendo mal o es que lo que pretendo no puede ser. Uso WOWSlider para hacer un pase de imágenes. ...
  #1 (permalink)  
Antiguo 26/11/2014, 07:02
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Ejecutar código php según parámetros

Buenas,
No sé si lo estoy haciendo mal o es que lo que pretendo no puede ser.
Uso WOWSlider para hacer un pase de imágenes. Para probarlo he creado el siguiente código y funciona perfectamente:

Código PHP:
Ver original
  1. <!-- I: inc_passe -->
  2.     <?php
  3.         include "inc_config.php";
  4.         $fotos[0] = "20130709172217.jpg";
  5.         $fotos[1] = "20130709172233.jpg";
  6.         $fotos[2] = "20130709172241.jpg";
  7.         $fotos[3] = "20130709172252.jpg";
  8.         $fotos[4] = "20130709172131.jpg";
  9.         $fotos[5] = "20130709172203.jpg";
  10.     ?>
  11.  
  12.     <link rel="stylesheet" href="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="engineWow/style.css" />
  16.     <script type="text/javascript" src="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_0'/></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="engineWow/wowslider.js"></script>
  40.     <script type="text/javascript" src="engineWow/script.js"></script>
  41.     <!-- End WOWSlider.com BODY section -->
  42. </div>
  43. <!-- F: inc_passe -->

Pero lo que me interesa es no cargar el array manualmente, sinó pasarlo como parámetro. He escrito el siguiente código, y el array se carga porqué he puesto chivatos, pero no se ejecuta el código:

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

Puede alguien decirme qué hago mal?
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 26/11/2014, 10:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ejecutar código php según parámetros

¿Y cómo sabes si $fotos es un array?

¿Cómo podríamos nosotros adivinar dicho valor?

Porque vamos, es tan simple que deberías tener certeza.

Has lo siguiente y muestra lo que te resulte:

Código PHP:
Ver original
  1. $fotos = $_POST["prmFotos"]['fotos'];
  2. var_dump($fotos);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/11/2014, 11:03
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Buenas, lo sé porqué lo he comprobado con un script, mostrando los valores.
Código Javascript:
Ver original
  1. <script type=javascript>
  2. alert ("<?php echo 'fotos: '.$fotos[0]?>");
  3. </script>

Y si hago lo que me comentas:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. alert("<?php echo 'array: '.var_dump($fotos)?>");
  3. </script>
No visualiza nada.

Intento mostrar los valores con alert (javascript), porqué si lo hago con echo (php), no muestra nada, no sé si porqué no se ha creado el código, o lo que sea.

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

Última edición por mblascog; 26/11/2014 a las 14:48
  #4 (permalink)  
Antiguo 26/11/2014, 16:53
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Sigo sin entenderlo. Partiendo del array recibido
Código PHP:
Ver original
  1. $fotos = $_POST["prmFotos"]['fotos'];

Puedo comprobar, al segundo click, el contenido de los elementos del array, sólo a través de javascript, por ejemplo:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         alert("<?php echo 'fotos: '.$fotos[3]?>");
  3.     </script>

Pero en ningún caso, puedo comprobar el contenido del array, a partir de var_dump, ni
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         alert("<?php echo 'fotos: '.var_dump($fotos)?>");
  3.     </script>
ni
Código PHP:
Ver original
  1. print var_dump($fotos)

ni tampoco
Código PHP:
Ver original
  1. print $fotos[0];

No le encuentro la lógica. Alguien ve en que me estoy equivocando.
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #5 (permalink)  
Antiguo 26/11/2014, 17:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ejecutar código php según parámetros

Te sugiero mostrar el código completo, y sobre todo explicar el flujo del mismo.

Entiende que a nivel de PHP no deberías tener problemas, pero si estás recibiendo dichos datos desde otro lado puede que ahí esté el cuello de botella.

¿Cómo adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 26/11/2014, 17:20
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Gracias por responder.
El código es exactamente el que antes he expuesto.
Al hacer click sobre la imagen, se ejecuta esta función de jquery:
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 "inc_passe.php",{prmFotos:{fotos: data}}, function(data){$('.wowFoto').html(data);});
  7.         })
He comprobado, a través de alerts, el contenido de data, y es correcto.

inc_fotos.php es así:
Código PHP:
Ver original
  1. <!-- I: inc_passe -->
  2.     <?php
  3.         include "inc_config.php";
  4.         $fotos = $_POST["prmFotos"]['fotos'];
  5.     ?>
  6.     <script type="text/javascript">
  7.         alert("<?php echo 'fotos: '.$fotos[0]?>");
  8.     </script>
  9.  
  10.     <link rel="stylesheet" href="css/estils.css" type="text/css" media="all" />
  11.    
  12.     <!-- Start WOWSlider.com HEAD section --> <!-- add to the <head> of your page -->
  13.     <link rel="stylesheet" type="text/css" href="engineWow/style.css" />
  14.     <script type="text/javascript" src="engineWow/jquery.js"></script>
  15.     <!-- End WOWSlider.com HEAD section -->
  16.  
  17. <div id="passe">
  18.     <!-- Start WOWSlider.com BODY section --> <!-- add to the <body> of your page -->
  19.     <div id="wowslider-container1">
  20.         <div class="ws_images">
  21.             <ul>
  22. <?php               for ($i=0; $i<count($fotos); $i++) {
  23.                     echo "<li><img src=".$fotos[$i]." alt='' title='' id='wows1_0'/></li>";
  24.                 } ?>
  25.             </ul>
  26.         </div>
  27.         <div class="ws_bullets">
  28.             <div>
  29. <?php               for ($i=0; $i<count($fotos); $i++) {
  30.                     echo "<a href='#'>".$i."</a>";
  31.                 } ?>
  32.             </div>
  33.         </div>
  34.         <span class="wsl"><a href="http://wowslider.com/vu">image carousel</a> by WOWSlider.com v7.2</span>
  35.         <div class="ws_shadow"></div>
  36.     </div> 
  37.     <script type="text/javascript" src="engineWow/wowslider.js"></script>
  38.     <script type="text/javascript" src="engineWow/script.js"></script>
  39.     <!-- End WOWSlider.com BODY section -->
  40. </div>
  41. <!-- F: inc_passe -->
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #7 (permalink)  
Antiguo 26/11/2014, 17:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ejecutar código php según parámetros

Pues yo veo, y no lo mostraste antes, errores de código aquí:
Código PHP:
Ver original
  1. $.post("<?php echo "inc_passe.php",{prmFotos:{fotos: data}}, function(data){$('.wowFoto').html(data);});

¿Está bien escrito ese código o te hace falta mostrar algo más?

Porque a simple vista parece una combinación bizarra de código PHP y Javascript mal escrito.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 27/11/2014, 01:24
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Gracias Patekekruete,
Es mi primera vez que hago algo con jquery y es precisamente modificando una web existente y que ya contiene código.
Esta instrucción la he creado en base a otras, quizás esté mal, no lo sé. Si no pudiera ver de ninguna manera el valor del array desde inc_passe.php, pensaría que seguro que lo está, pero al poder, me inclino en pensar que el problema lo tengo en inc_passe.php.

Gracias.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #9 (permalink)  
Antiguo 30/11/2014, 17:10
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 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
  #10 (permalink)  
Antiguo 02/12/2014, 03:37
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Ejecutar código php según parámetros

Buenas, nadie puede echarme un cable, o es que lo estoy haciendo muy mal?
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: según
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:01.