![]() |
Como llamar a una funcion dos veces en una misma pagina Tengo una clase (DataGrid), la misma, que tengo necesidad de llamarla dos o mas veces veces en la misma pagina, pero me sale este error: Fatal error: Cannot redeclare listadogrid() (previously declared in F:\Apache\v2\erp\Controles\DataG\GridFunciones.php :5) in F:\Apache\v2\erp\Controles\DataG\GridFunciones.php on line 21 Alguien podria darme alguna idea para no ver este conflicto? Observacion: Si creo el objeto una vez funciona. Gracias |
Re: Como llamar a una funcion dos veces en una misma pagina Claro, no puedes incluir una clase dos veces. POr eso PHP te está diciendo que no la redeclares. Pero igualmente no tiene sentido. EN vez de incluir la clase dos veces, inicia dos objetos así $objeto1 = new DataGrid; $objeto2 = new DataGrid; Y ya tienes dos objetos que cuentas con todas las funciones de la clase y con variables independientes. Esa es la ventaja de trabajar con POO (programación orientada a objetos).- SAludos |
Re: Como llamar a una funcion dos veces en una misma pagina Ahh ademas estuve viendo el error y no es de la reclaración de una clase, sino más bien de una funcíón. Tampoco hace falta incluir una funcion dos veces (no se puede)... para qué necesitas eso, si lo explicas podremos exlicarte cuál es la forma correcta de hacerlo. Saludos |
Re: Como llamar a una funcion dos veces en una misma pagina Tienes razon USERMAX, creando dos objetos se soluciona el problema: $objeto1 = new DataGrid; $objeto2 = new DataGrid; Sin embargo surge otro: Esta clase por ser un data grid, hace una consulta a una DB, por lo cual como parametro envio el SQL, sin embargo cuando creo dos objetos dentro de una misma pagina se confunden las variables y al final me salen dos grid con la misma consulta. Se requiere mostrar en una sola pagina dos GRID con consultas a diferentes tablas. Nota: cuando creo los objetos envio los parametro SQL particulares $obj1 = new DataGrid(); $obj1->DataView($Sql1); $obj2 = new DataGrid(); $obj2->DataView($Sql2); Espero puedan darme alguna idea. Gracias |
Re: Como llamar a una funcion dos veces en una misma pagina alguien q me de alguna pista? |
Re: Como llamar a una funcion dos veces en una misma pagina Y si eliminas el objeto, ya sea mediante alguna propiedad o "$objeto = null", y lo vuelves a crear? |
Re: Como llamar a una funcion dos veces en una misma pagina No puedo hacer eso, ya que deseo que los dos grid se muestren en simultaneo, pero ingresando a diferentes tablas. En otras palabras reutilizando la clase GRID. El problema consiste en que la variable $SQL de un objeto se convina con la misma variable del otro objeto y al final tengo dos grid que accden a la misma tabla. |
Re: Como llamar a una funcion dos veces en una misma pagina Hola kotosh, El problema es de tu clase DataGrid, ya que si esta mezclando los valores, entonces no esta encapsulada. Contacta al autor de la clase y que verifique como está programada. Saludos. Tema trasladado a PHP Orientado a Objetos. |
Esta es mi clase. Yo soy el autor de dicha clase, pero soy novato en esto...ya que estoy acostumbrado a la programación estructurada, pero gracias por el dato...tendre que aprender como "encapsular" mis variables en PHP. Mi clase en sitesis tiene esto: class Grid{ function DataGrid($Sql, $DemasParametros){ //todo el cofigo para que funcione mi clase... // (reordenamiento de columnas, paginador, ancho y altura, buscador,etc) } } //------- Pagina.php-------------- //Creo mi objeto 1: $obj3 = new Grid(); $obj3->DataGrid($Sql,$DemasParametros); //Creo mi objeto 2: $obj4 = new Grid(); $obj4->DataGrid($Sql,$DemasParametros); Soy enemigo de los que esperan recibir todo servido, por lo cual me dedicare a investigar mas sobre POO, sin embargo si por alli alguien me da una mano, lo agradecere mucho, ya que estoy contra el tiempo. Gracias. |
Re: Como llamar a una funcion dos veces en una misma pagina Sin saber la estructura de tu clase, es un poco complicado que te pueda asesorar en como podrías buscar ese encapsulamiento. Saludos. |
| La zona horaria es GMT -6. Ahora son las 10:34. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.