Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] funciones

Estas en el tema de funciones en el foro de Javascript en Foros del Web. Buenas tardes, estuve buscando mi duda en el foro y no la encontré. Lo que pasa es tengo una pagina llamada home.php que contiene esto: ...
  #1 (permalink)  
Antiguo 23/02/2016, 19:47
 
Fecha de Ingreso: febrero-2016
Ubicación: aqui
Mensajes: 11
Antigüedad: 8 años, 2 meses
Puntos: 0
funciones

Buenas tardes, estuve buscando mi duda en el foro y no la encontré.
Lo que pasa es tengo una pagina llamada home.php que contiene esto:

<?php
require_once("catalogos.php");
?>

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Portal CFE</title>
<

</head>



<body>



<ul id="nav">


<li><a href="#">CATALOGOS</a>
<ul>
<li><a href="javascript:mostrar('Cproyectos')">Proyectos</a></li>

</ul>
</li>

</ul>


<script src="js/script.js"></script>

</body>
</html>


y lo que quiero es llamar otra pagina que se llama catalogos.php y dentro de catálogos esta una función que se conecta con la base de datos y me trae los datos que contiene la tabla catalogos para mostrarlos en pantalla.
Pero lo que quiero es que cuando le de click a el enlace que se llama PROYECTOS me cargue la pagina catalogos.php y al mismo tiempo se ejecute la funcion que tengo dentro del mismo pero que el resultado aparesca en catalogos.php y NO EN HOME.php(ojo no quiero traer los datos de catalogos.php a home.php si no llamar desde home a catalogos y que en catalogos se ejecute la funcion y aparesca el resultado) y hasta ahora lo que he podido hacer es llamar la funcion desde home.php pero el problema es que el resultado lo muestra en HOME y yo lo quiero en catalogos.php.

El codigo de catalogos.php es este:

<?php

require_once("conexion.php");

$sql=mysqli_query($con,"SELECT * FROM cata_proyectos");


?>

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Portal CFE</title>
<link rel="stylesheet" href="css/layout.css" />
<link rel="stylesheet" href="css/menu.css" />




<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

function mostrar(id) {


if (id == "Cproyectos") {
$("#Cproyectos").show();
$("#trabajador").hide();
$("#autonomo").hide();
$("#paro").hide();
}


}

</script>




</head>


<!-- ************************************************** ********************************* -->
<body>



<!-- *******************DIV PARA MOSTRAR CATALOGOS DE PROYECTOS *******************************-->
<div id="Cproyectos" >
<table id="dataTable" align="center" width="600" border="solid" bgcolor= "#320D0D">
<h2 style="text-align: center; font-size: 20px;">CATÁLOGO DE PROYECTOS</h2><br/<
<tr>
<td ><label id="columnas">Nombre</label></td>
<td><label id="columnas">Fecha de inicio</label></td>
<td><label id="columnas">Descripción</label></td>
</tr>


<?php
while ($resp=mysqli_fetch_array($sql)) {


?>

<tr style="background-color:#F0F0F0; ">

<td width="50" align="center" valign="top"> <?php echo $resp["id_proyecto"]?> </td>
<td width="50" align="center" valign="top"> <?php echo $resp["fecha_inicio"]?></td>
<td width="50" align="center" valign="top"> <?php echo $resp["descripcion_de_proyecto"]?></td>


</tr>

<?php
}
?>

</table>

</div>


</body>
</html>




LA FUNCIÓN QUE QUIERO INVOCAR SE LLAMA ----->mostrar();
  #2 (permalink)  
Antiguo 24/02/2016, 14:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: funciones

No vas a poder llamar directamente a esa función puesto que el clic se realiza en el lado del cliente y tu función está en otro archivo que se ejecuta en el lado del servidor. Incluso así estuviera en el mismo archivo, si es código PHP, no podrá ejecutarlo desde JavaScript.

En su lugar, puedes realizar una petición asíncrona (AJAX), de tal modo que haces la petición al archivo PHP en cuestión, este realiza el procesamiento y devuelve una respuesta, misma que mostrarás en alguna parte del archivo inicial.

Un ejemplo:
Código HTML:
Ver original
  1. <!-- Archivo inicial -->
  2. <button id="foo">Ejemplo</button>
  3. <div id="bar"></div>

Código Javascript:
Ver original
  1. /* Archivo JS incluido en el archivo inicial */
  2. document.querySelector("#foo").addEventListener("click", function(){
  3.     var ajax = new XMLHttpRequest();
  4.     ajax.open("GET", "ejemplo.php", true);
  5.     ajax.send();
  6.     ajax.addEventListener("load", function(){
  7.         if (this.status == 200){
  8.             document.querySelector("#bar").innerHTML = this.responseText;
  9.         }
  10.     }, false);
  11. }, false);

Código PHP:
Ver original
  1. /* Archivo PHP en el cual se encuentra la función */
  2. function abc(){
  3.     echo 'Hola, mundo';
  4. }
  5.  
  6. abc(); //Se realiza el llamado a la función

De esta manera, se mostrará el mensaje "Hola, mundo" en el <div> que se encuentra en el archivo inicial.

Un saludo
__________________
«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 25/02/2016, 09:57
 
Fecha de Ingreso: febrero-2016
Ubicación: aqui
Mensajes: 11
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: funciones

GRACIAS ALEXIS88, al final lo que queria hacer era mandar llamar esa funcion mostrar() que estaba en catalogos.php desde home.php pero que el resultado se motrara en catalogos.php, pero antes de todo eso yo queria mostrar esa misma funcion en otra pagina que se llama registro.php pero como esa pagina ya tenia un contenido pues si mandaba llamar la funcion de catalogos.php se iva a mostrar el contenido de catalogos MAS el contenido de registro.php y no queria que se amontonara por eso mejor cree la pagina catalogos.php que no contenia nada mas que la funcion mostrar().
Pero ya solucione todo y lo que hice fue llamar la funcion mostrar() y que muestre el resultado en registros.php y que al mismo tiempo se ocultara el otro contenidoy de esa manera ya no utilizo otra pagina aparte como la de catalogos.php pero gracias por la ayuda creo que yo desde un inicio tuve la culpa por no pensar bien como hacer las cosas

Etiquetas: funcion, funciones, html, js, php
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 11:28.