Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Funcion javascript no se ejecuta dentro del php

Estas en el tema de Funcion javascript no se ejecuta dentro del php en el foro de PHP en Foros del Web. Hola a todos por acá, soy nuevo en el foro y quería ver si podían ayudarme con un problema que tengo Resulta que estoy haciendo ...
  #1 (permalink)  
Antiguo 23/05/2014, 22:40
 
Fecha de Ingreso: mayo-2014
Mensajes: 7
Antigüedad: 10 años, 6 meses
Puntos: 0
Funcion javascript no se ejecuta dentro del php

Hola a todos por acá, soy nuevo en el foro y quería ver si podían ayudarme con un problema que tengo

Resulta que estoy haciendo una pagina y me quedé estancado
En la pagina principal (index.php) se mostraran unas "noticias" (ya el sistema está casi listo en php y msql, hice la prueba de si se publicaban y se publican como se espera) ahora le estoy agregando dos botones más, editar y borrar. El problema viene que quiero que al apretar editar salga una nueva ventana con la noticia, titulo y autor para editar, y quiero hacer eso con una funcion window.open en javascript dentro de un echo php, no se si me explico

asi que imprime las noticias en el index:
Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3. ?>
  4. <?php
  5. $noti1 = mysql_query("SELECT * FROM `noticias` ORDER BY `id` DESC limit 9") or die (mysql_error());
  6. ?>
  7. <p align="center">
  8. <?php
  9. while($noti = mysql_fetch_assoc($noti1))
  10. {
  11.   echo '
  12. <div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="98%" id="AutoNumber1"><tr><td><span class="tituloM"> '.htmlspecialchars($noti['titulo']).'</span></td></tr><tr><td style="padding-top: 10px; padding-bottom: 5px;"><span class="mensajeNuevo"> '.htmlspecialchars($noti['mensaje']).'</span></td></tr><tr><td><i><span class="autor">Publicado por:  '.htmlspecialchars($noti['autor']).'</span></i></td></tr>
  13. <tr><td><center>
  14. [COLOR="Red"]<script> function abrirVentana(url) {
  15. window.open(url, "nuevo", "directories=no, location=no, menubar=no, scrollbars=yes, statusbar=no, tittlebar=no, width=500, height=400");
  16. }</script>[/COLOR]
  17. [<a href="#" onclick="abrirVentana("editar.php"); return false; style="text-decoration: none; color: black;">Editar</a> | <a href="#" onclick="abrirVentana("borrar.php"); return false; style="text-decoration: none; color: black;">Borrar</a>]</center></td></tr>
  18. </table></center></div><hr color="#000000" size="1">';
  19. }
  20. ?>

Asi como está me aparecen el "[Editar | Borrar ]" bajo la noticia como link pero no se ejecuta la función, al clikearle encima no pasa nada, no sale ninguna ventana, no se va a otra pagina, nada

esta algo mal escrito? se puede hacer?

Saludos y gracias de antemano

Última edición por Triby; 23/05/2014 a las 23:11 Razón: Corregir highlight
  #2 (permalink)  
Antiguo 23/05/2014, 22:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funcion javascript no se ejecuta dentro del php

Estás haciendo un mal uso de las comillas. Las comillas con las que rodeas editar.php, deben de ser simples y no dobles, pues la llamada a la función ya se encuentra entre comillas dobles, con lo cual si colocas otras comillas dobles, indicas que lo que está dentro de ellas es lo que se debe de ejecutar, es decir: abrirVentana(

Hazlo así: onclick = "abrirVentana('editar.php')"

Y por favor, ordena tu código, pues mostrándolo así, dudo que alguien se interese en ayudarte en el futuro. Por cierto, esto debiste publicarlo en el foro de JavaScript, ya que tu problema no tiene nada que ver con PHP.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 23/05/2014, 23:08
 
Fecha de Ingreso: mayo-2014
Mensajes: 7
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Funcion javascript no se ejecuta dentro del php

Gracias por la rápida respuesta :)

Lo intenté como dices y el inicio desaparece, al recargar la pagina se queda en blanco, a que se debe eso?

Perdón por el codigo todo desordenado y por el tema mal ubicado :S
  #4 (permalink)  
Antiguo 23/05/2014, 23:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Funcion javascript no se ejecuta dentro del php

Ya que toda la cadena está encerrada entre comillas simples, debes escapar las internas, ejemplo:

onclick = "abrirVentana(\'editar.php\')"

Además, hay otras opciones para mostrar bloques de código, sobre todo si no tienes variables, es tan simple como salir del modo php ?> enviar el HTML necesario y regresar a php <?php

Ejemplo:

Código PHP:
Ver original
  1. <script>
  2. function abrirVentana(url) {
  3.     window.open(url, "nuevo", "directories=no, location=no, menubar=no, scrollbars=yes, statusbar=no, tittlebar=no, width=500, height=400");
  4. }
  5. </script>
  6. <?php
  7. while($noti = mysql_fetch_assoc($noti1)) {
  8. ?>
  9.     <table style="border-collapse: collapse; width:98%; margin:0 auto; border:0;" id="AutoNumber1">
  10.     <tr>
  11.         <td><span class="tituloM"><?php echo htmlspecialchars($noti['titulo']); ?></span></td>
  12.     </tr>
  13.     <tr>
  14.         <td style="padding-top: 10px; padding-bottom: 5px;"><span class="mensajeNuevo"><?php echo htmlspecialchars($noti['mensaje']); ?></span></td>
  15.     </tr>
  16.     <tr>
  17.         <td><i><span class="autor">Publicado por: <?php echo htmlspecialchars($noti['autor']); ?></span></i></td>
  18.     </tr>
  19.     <tr>
  20.         <td style="text-align:center;">
  21.             [<a href="#" onclick="abrirVentana('editar.php?id=<?php echo $noti['id_de_noticia']; ?>'); return false; style="text-decoration: none; color: black;">Editar</a> |
  22.             <a href="#" onclick="abrirVentana('borrar.php?id=<?php echo $noti['id_de_noticia']; ?>'); return false; style="text-decoration: none; color: black;">Borrar</a>]
  23.         </td>
  24.     </tr>
  25.     </table>
  26.     <hr color="#000000" size="1" />;
  27.  
  28. <?php
  29. }

Por cierto:

- En cada iteración del while estabas creando la función para abrir ventana
- Te faltaba agregar la id de la noticia que se debe editar/borrar, corrige el campo id si es necesario
- Te recomiendo estudiar un poco sobre CSS, para que no tengas que usar cosas como <center> o <div align="center">
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/05/2014, 14:15
 
Fecha de Ingreso: mayo-2014
Mensajes: 7
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Funcion javascript no se ejecuta dentro del php

Gracias por sus respuestas! creo que ya lo he solucionado :D

Etiquetas: ejecuta, funcion, html, javascript, mysql, select, sql
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 12:52.