Foros del Web » Programando para Internet » PHP »

Cómo llamar función javascript desde php

Estas en el tema de Cómo llamar función javascript desde php en el foro de PHP en Foros del Web. Hola a todos. Saludos. Miren tengo el siguiente problema, quisiera llamar una función hecha en javascript desde el siguiente código: Código PHP: echo  "<li><a heref='?categoria=$rowCat[catCategoria]&id=rowCat['cat_ID']'>rowCat[catCategoria]</a></li>" ;  ...
  #1 (permalink)  
Antiguo 25/09/2008, 07:53
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta Cómo llamar función javascript desde php

Hola a todos.
Saludos.
Miren tengo el siguiente problema, quisiera llamar una función hecha en javascript desde el siguiente código:
Código PHP:
echo "<li><a heref='?categoria=$rowCat[catCategoria]&id=rowCat['cat_ID']'>rowCat[catCategoria]</a></li>"
La función javascript es para cambiar el contenido de un div que contiene una imagen, deseo que dicho contenido cambie en dependencia de la opción de menu que sea seleccionada.
Aclaro que la duda no es sobre javascript, sino cómo puedo llamar una función javascript desde la sentencia echo descrita anteriormente.
Muchas gracias.
  #2 (permalink)  
Antiguo 25/09/2008, 08:06
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Cómo llamar función javascript desde php

creo que la solución pasa por crear un echo que escriba un enlace con el evento onClick. Una vez generada la página al pinchar en el enlace se llamara a la funcion javascript.
  #3 (permalink)  
Antiguo 25/09/2008, 08:28
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Cómo llamar función javascript desde php

Cita:
Iniciado por nx00 Ver Mensaje
creo que la solución pasa por crear un echo que escriba un enlace con el evento onClick. Una vez generada la página al pinchar en el enlace se llamara a la funcion javascript.
Gracias, pero me pregunto si esa llamada la puedo hacer desde el mismo echo que pusé o tendría que crear otro echo.
Gracias.
  #4 (permalink)  
Antiguo 25/09/2008, 08:48
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Cómo llamar función javascript desde php

Primero aclaramos algo... El codigo php se ejecuta en el servidor y le devuelve un resultado al cliente o navegador, en cambio Javascript se ejecuta unicamente en el navegador. Entendido esto, si deseas ejecutar cualquiera funcion o codigo de Javascript desde php seria creando a traves del comando 'echo' codigo HTML o Javascript desde el codigo php. Creo que el ejemplo que colocaste no es suficiente para enterder bien que es lo que quieres, te hago la siguiente pregunta: ¿kieres que el contenido del div cambie y cargue toda la pagina de nuevo, o kieres que cambie solamente el contenido del div sin cargar de nuevo toda la pagina? Te pregunto esto porque si quieres que se procese un cambio desde php es necesario que envies los datos al servidor mientras que con javascript lo procesas en el mismo navegador sin cargar de nuevo la pagina. Creo que es mejor que coloques el codigo que este relacionado a lo que kieres y te podemos ayudar mejor.
  #5 (permalink)  
Antiguo 25/09/2008, 09:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Cómo llamar función javascript desde php

Cita:
Iniciado por cm_vargas Ver Mensaje
Primero aclaramos algo... El codigo php se ejecuta en el servidor y le devuelve un resultado al cliente o navegador, en cambio Javascript se ejecuta unicamente en el navegador. Entendido esto, si deseas ejecutar cualquiera funcion o codigo de Javascript desde php seria creando a traves del comando 'echo' codigo HTML o Javascript desde el codigo php. Creo que el ejemplo que colocaste no es suficiente para enterder bien que es lo que quieres, te hago la siguiente pregunta: ¿kieres que el contenido del div cambie y cargue toda la pagina de nuevo, o kieres que cambie solamente el contenido del div sin cargar de nuevo toda la pagina? Te pregunto esto porque si quieres que se procese un cambio desde php es necesario que envies los datos al servidor mientras que con javascript lo procesas en el mismo navegador sin cargar de nuevo la pagina. Creo que es mejor que coloques el codigo que este relacionado a lo que kieres y te podemos ayudar mejor.
Muchas gracias, mira esa parte del código javascript que se ejecuta en el navegador ya la conocía según lecturas que he hecho al respecto.
El problema es que lo que quiero hacer no es para este foro, es más bien para el foro de ajax o javascript. Pero te explico someramente para que entiendas.
Tengo una página php llamada index la cual esta formada por tres div, uno superior que tiene un atributo id que lo identifica, uno lateral izquierdo con el atributo float left, en el cual cargo una página que tiene el menu de opciones de sitio, en el otro div muestro el contenido en dpendencia de la opción de menu que se haya seleccionado.
En esencia en cada div se carga una página diferente, exceptuando el superior que muestra una imagen.
Lo que deseo es que según la opción que seleccione en el menu, por eso puse el echo, pues es en ese echo donde se muestra la etiqueta ancla para los enlaces del menu de navegación, se cambie la imagen del div que carga la imagen por otra imagen que estará en consonancia con la opción del menu seleccionada.
Espero hayas entendido ahora a lo que me refiero exactamente.
El código completo esta publicado en el foro javascript bajo el titulo Cómo cambiar el contenido de un div, fue publicado en el día de ayer, pero hasta ahora nadie me ha respondido, no se si es que es muy difícil lo que intento hacer, o demasíado fácil que no amerita ni responderlo.
De todas formas sigo haciendo el intento a ver que pasa.
Muchas gracias.
  #6 (permalink)  
Antiguo 25/09/2008, 09:32
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Cómo llamar función javascript desde php

Primero vamos a ver si te entendi para pasarte una posible respuesta a tu problema. Tienes una pagina index la cual al iniciar te presenta ,entre otras cosas, un menu y una imagen. quieres que al seleccionar una opcion del menu te envie esos datos de nuevo a la pagina index pero con los datos de la opcion selecionada y quieres que te cambie la imagen. osea, no estas enviando los datos a otra pagina sino que estas utilizando la misma index... asi?
  #7 (permalink)  
Antiguo 25/09/2008, 09:43
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Cómo llamar función javascript desde php

Cita:
Iniciado por cm_vargas Ver Mensaje
Primero vamos a ver si te entendi para pasarte una posible respuesta a tu problema. Tienes una pagina index la cual al iniciar te presenta ,entre otras cosas, un menu y una imagen. quieres que al seleccionar una opcion del menu te envie esos datos de nuevo a la pagina index pero con los datos de la opcion selecionada y quieres que te cambie la imagen. osea, no estas enviando los datos a otra pagina sino que estas utilizando la misma index... asi?
Muchas Gracias, es eso mismo.
Si pudieras darte una vuelta por el foro de javascript verás publicado mi tema con el código de las páginas.
Gracias.
  #8 (permalink)  
Antiguo 25/09/2008, 10:53
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Cómo llamar función javascript desde php

creo que puedes hacer lo siguiente:
En el caso de no tener las direcciones de las imagenes en una base de datos y de estas ser estaticas:
Código HTML:
<html>
<head>
    <title>Sistema de Noticias</title>
    <script>
    function cambiar(){
    	document.getElementById('divXCambiar').innerHTML = "ADIOS";
    }
    </script>
</head>
<body>
<?php include('db-cnx.php'); ?>

<?php
$idurl=$HTTP_GET_VARS["id"];// Obtienes la id de la categoria seleccionada la cual enviaste por url

if (!empty($idurl)){// si existe un valor en la variable idurl hace lo siguiente

//las constantes de este case las cambias segun los id's de tus categorias
switch($idurl){
case = 1:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image1.gif) no-repeat; clear: both;"></div>'
break;

case = 2:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image2.gif) no-repeat; clear: both;"></div>'
break;

case = 3:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image3.gif) no-repeat; clear: both;"></div>'
break;

default: // esta opcion se activa si pasa un numero que no este en el rango de las categorias
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image0.gif) no-repeat; clear: both;"></div>'
break;
}
}else{ // si NO existe un valor en la variable idurl hace lo siguiente
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image.gif) no-repeat; clear: both;"></div>'
}
?>
<h1>Sistema de Noticias</h1>
<div style="float:left; width: 25%;">
    <?php include('list-categoria.php'); ?>
</div>
<div style="float:right; width: 75%;">
    <?php include('list-noticia.php'); ?>
</div>


locura
<br>
<br><br><ul><li><a href='?categoria=CRUZ&amp;id=5'>cruz</a></li></ul>
<input onclick="cCambio()" type="submit" name="Submit" value="Buscar" />
</body>
</html> 
Te doy la respuestas con php porque es mas sencillo pero en javascript si se puede. La otra posible opcion es que en la base de datos donde tienes las categorias agregues otro campo que contenga la direccion de la imagen correspondiente. lo llamas con un select desde php y colocas la variable de la direccion de la imagen mas o menos asi:

Código PHP:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(.'.$varDireccionImagen.') no-repeat; clear: both;"></div>' 
  #9 (permalink)  
Antiguo 25/09/2008, 13:27
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Cómo llamar función javascript desde php

Cita:
Iniciado por cm_vargas Ver Mensaje
creo que puedes hacer lo siguiente:
En el caso de no tener las direcciones de las imagenes en una base de datos y de estas ser estaticas:
Código HTML:
<html>
<head>
    <title>Sistema de Noticias</title>
    <script>
    function cambiar(){
    	document.getElementById('divXCambiar').innerHTML = "ADIOS";
    }
    </script>
</head>
<body>
<?php include('db-cnx.php'); ?>

<?php
$idurl=$HTTP_GET_VARS["id"];// Obtienes la id de la categoria seleccionada la cual enviaste por url

if (!empty($idurl)){// si existe un valor en la variable idurl hace lo siguiente

//las constantes de este case las cambias segun los id's de tus categorias
switch($idurl){
case = 1:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image1.gif) no-repeat; clear: both;"></div>'
break;

case = 2:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image2.gif) no-repeat; clear: both;"></div>'
break;

case = 3:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image3.gif) no-repeat; clear: both;"></div>'
break;

default: // esta opcion se activa si pasa un numero que no este en el rango de las categorias
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image0.gif) no-repeat; clear: both;"></div>'
break;
}
}else{ // si NO existe un valor en la variable idurl hace lo siguiente
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(./images/new_image.gif) no-repeat; clear: both;"></div>'
}
?>
<h1>Sistema de Noticias</h1>
<div style="float:left; width: 25%;">
    <?php include('list-categoria.php'); ?>
</div>
<div style="float:right; width: 75%;">
    <?php include('list-noticia.php'); ?>
</div>


locura
<br>
<br><br><ul><li><a href='?categoria=CRUZ&amp;id=5'>cruz</a></li></ul>
<input onclick="cCambio()" type="submit" name="Submit" value="Buscar" />
</body>
</html> 
Te doy la respuestas con php porque es mas sencillo pero en javascript si se puede. La otra posible opcion es que en la base de datos donde tienes las categorias agregues otro campo que contenga la direccion de la imagen correspondiente. lo llamas con un select desde php y colocas la variable de la direccion de la imagen mas o menos asi:

Código PHP:
echo '<div id = "divXCambiar" style="float: none; width: auto; height: 150px; background: url(.'.$varDireccionImagen.') no-repeat; clear: both;"></div>' 
cm_vargas Muchas Gracias por tu respuesta, lo estuve probando y en esencia, esa es la cosa, hay algunas cosas que tengo que corregir, pero funciona, al menos eso era lo que yo quería.
Te reítero mis gracias.
Excelente.
  #10 (permalink)  
Antiguo 25/09/2008, 13:30
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Cómo llamar función javascript desde php

Estamos para ayudarnos... Cualkier cosa pegas otro grito por aki
  #11 (permalink)  
Antiguo 28/09/2008, 12:29
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Cómo llamar función javascript desde php

Aclaratoria.PHP se ejecuta del lado del servidor y javascript del lado del cliente. ahora si dijeras que como haces para llamar php desde javascript estarias totalmente correcta tu pregunta.. es solo un TIP no lo tomes a mal saludos...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #12 (permalink)  
Antiguo 30/09/2008, 09:04
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Cómo llamar función javascript desde php

Epale gochito, no lo tomo a mal si no que pasa lo siguiente.La pregunta tiene el siguiente enunciado:
Cómo llamar función javascript desde php.
No veo donde dice llamar php desde javascript. Ademas, a pesar del enunciado, lo importante es ayudar a solucionar el problema como tal. Fijate que al amigo le parecio bien esta solucion. Otra cosa, no veo que aclaras algo, ya que eso fue aclarado antes.
Y disculpame pero en realidad no le veo sentido a ese comentario que hiciste. Esta demas, sobra.
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 06:24.