Foros del Web » Programando para Internet » PHP »

Consulta sobre un Link con PHP y JavaScript

Estas en el tema de Consulta sobre un Link con PHP y JavaScript en el foro de PHP en Foros del Web. Hola: La dificultad que tengo ahora es que cuando le doy clic al vinculo me despliega el registro en el mismo frame, cuando le indico ...
  #1 (permalink)  
Antiguo 01/09/2003, 21:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 33
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta Consulta sobre un Link con PHP y JavaScript

Hola:
La dificultad que tengo ahora es que cuando le doy clic al vinculo me despliega el registro en el mismo frame, cuando le indico que me despliegue el registro en una ventana independiente.
La función que utilizo esta en JavaScript y es la siguiente:

<script language="JavaScript">
<!--
function abreventana(){
window.open("desplegar.php3","_blank","toolbar=no, menubar=no,scrollbars=yes,location=yes,status=no,w idth=700,height=650");
}
//-->
</script>

Y el vinculo es:
echo '<td><a href="desplegar.php3?titulo='.urlencode($row["titulo"]).'" onclick="abreventana();">'.$row["titulo"].'</a></td>';

Talvez no puedo poner una función creada en JavaScript dentro de un script php y por eso me da ese error o estoy utilizando mal la función en el link o será porque la url tiene estos parámetro: "desplegar.php3?titulo='.urlencode($row["titulo"]).'" y la función creada en JavaScript no la acepta. La realidad que no sé.

Gracias por la ayuda.
__________________
Patricia
  #2 (permalink)  
Antiguo 01/09/2003, 21:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
A tu función javasript le has de pasar tus parámetros que haces en el link (exactametne igual ..) a la hora de abrir tu ventana con window.open .. donde le pasas el parámtro de que página quieres abrir en tu "pop up" .. Por ende, debes de pasarle esas variables que requires en tu script.php (y que a ese entraran por GET pues sólo estás haciendo una llamada como si de un link se tratase ..)

Sería algo así:

Código PHP:
<script language="JavaScript">
<!--
function 
abreventana(variables){
window.open("desplegar.php3?"+variables,"_blank"," toolbar=no,menubar=no,scrollbars=yes,location=yes,
status=no,width=700,height=650"
);
}
//-->
</script> 

Código PHP:
echo '<td><a href="desplegar.php3?titulo='.urlencode($row["titulo"]).'" onclick="abreventana('titulo='.urlencode($row["titulo"]).');">'.$row["titulo"].'</a></td>'; 
PHP no tiene nada que ver con javascript .. Piensa siempre que "PRIMERO" PHP se ejecuta en el servidor .. "compone" tu HTML/javacript (si es usado vía echo .. ect) o simplemente lo deja como esté (si has roto <? ?> para incrustrar tu HTML/javascript/etc ..). Piensa en lo que PHP va a generar .. y edita el código generado para comprobar que es eso lo que harías "a mano" sin nada de PHP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 03/09/2003, 20:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 33
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola,

No me funciono con las variables, antes se abría la ventana, pero
con las variables me despliega el registro en el mismo frame no el la nueva ventana.

Necesito ayuda, sinceramente no se como hacerlo.


Gracias, Nuevamente.
__________________
Patricia
  #4 (permalink)  
Antiguo 03/09/2003, 23:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok .. si hace eso usando lo que puse de javascript es simplemente porqué en algo me equivoqué (sintax) .. Te recomendaría que con ese código en la mano fueras al foro Javascript y te lo "arreglen" .. Por qué .. la técnica es esa pero el javascript no es mi fuerte xDDD.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 04/09/2003, 02:26
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Cluster, tu "fallo" esta en el echo del onclick. Te has liado con las ' (con tu edad y fallando eso ). Seria algo asi:

echo '<td><a href="desplegar.php3?titulo='.urlencode($row["titulo"]).'" onclick="abreventana(\\'titulo='.urlencode($row["titulo"]).'\\');">'.$row["titulo"].'</a></td>';

<editado>He quitado los tags PHP porque con ellos no se veian los \'</editado>
<editado2>Quitando los tags PHP tampoco se ven. Es mas en la anterior nota pongo al final \ ' (sin el espacio). Vuelvo a poner los tags PHP y escapo los \</editado2>
<editado3>Sigue sin mostrarlos con \ \ ' (sin los espacios). Pruebo a quitarle los PHP.</editado3>
<editadofinal>Bien, ya he conseguido que se muestre tal como es. Asi que quizas Cluster no se equivoco, al final. Fue culpa de los foros. Pero el que pregunto seguro que no lo sabe y copio literalmente lo que ve en los foros. Esto pasa demasiado. No se si es un bug de vBulletin o de la funcion PHP que usan. Pero creo que se deberia reparar. Cluster, pasales la queja a los "jefes".</editadofinal>

Pero con este codigo aun estarias mostrando desplegar.php3 tanto en la ventana nueva como en el mismo frame. Mas que nada, porque es lo que le estas mandando. En el mismo frame con el href, y en la ventana con el onclick. Para que te salga solo en la ventana, pon href="#". De esta forma no te lo abre en el mismo frame. Pero si el navegador no soporta javascript, no abrira nada. Para evitar esto podrias probar a poner onclick="abreventana(...); return false;" target="_BLANK" . Se supone que asi el return false cancelara la accion del href (algo asi como lo que pasa con los onsubmit) si el navegador soporta javascript. Y si no lo soporta, hara el href en otra pagina en blanco.

Saludos.

PD: Jesus, ¡que hago contestando javaascript en el foro de PHP! Haciendoles el trabajo.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 04/09/2003 a las 02:37
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:01.