Buenas en el dia de hoy escribo por primera vez porque necesito una ayuda bastante particular.
He desarrollado un Framework personal, todavia esta en prueba así que tiene unos cuantos defectos.
La idea principal del framework es la integración de varias de las herramientas que se usan a diario para la programación como PHP, MySQL, Xajax, jQuery y CKEditor.
Una de las principales formas de trabajo del frame consiste en no escribir en otro lenguaje que no sea PHP, es decir, no escribiremos HTML, MYSQL, CSS o Javascript (Solo con jQuery si se usa), esto lo hago con el fin de evitar los errores que nos da muchas veces el cierre de las etiquetas, que algunos olvidamos colocar o simplemente para tener un codigo muchisimo mas ordenado
Entonces tengo varias clases como por ejemplo las clases sql y html que son obviamente para escribir las sentencias necesarias
Ahora mi problema:
Las funciones xajax normalemente deben llevar mucho html y sql embedido asi que para evitar errores pretendo crear las instancias de estos objetos dentro de mi funcion xajax
Ahora voy con el codigo:
Código PHP:
class html
{
function div($id = NULL,$contenido,$class = NULL,$align = NULL,$style = NULL)
{
$div = '<div ';
if($id) $div.= 'id = "'.$id.'" ';
if($class) $div.= 'class = "'.$class.'" ';
if($align) $div.= 'align = "'.$align.'" ';
if($style) $div.= 'style = "'.$style.'" ';
$div.= '>';
$div.= $contenido;
$div.= '</div>';
return $div;
}
}
Con esta funcion se pretende crear una capa o div con parte de los atributos que este lleva.
Código PHP:
class sql
{
function sql()
{
return $this->connect(sql_host,sql_user,sql_clave,sql_db);
}
function connect($host,$user,$pass,$db)
{
$error = "";
if(mysql_connect($host,$user,$pass) == false)
{
$error = "No se puede conectar al servidor";
}
elseif(mysql_select_db($db) == false)
{
$error = "No se puede seleccionar la base de datos";
}
if($error != "")
{
$mensaje = $error;
}
else
{
$mensaje = true;
}
return $mensaje;
function fetch_assoc($query)
{
$fetch = mysql_query($query);
while($arr = mysql_fetch_assoc($fetch))
{
$dat[] = $arr;
}
return $dat;
}
}
La clase SQL cuyas funciones escritas son la funcion de conexion y la funcion para crear matrices o arreglos que puedan ser manipulables como los conocidos $row["dato"]
Bien, ahora escribo mi funcion xajax
Código PHP:
<? require_once(dirname."xajax/xajax_core/xajax.inc.php");
$xajax = new xajax();
$xajax->configure("javascript URI", url."xajax/");
$xajax->configure("setCharEncoding",charset);
function modificar_div($tipo)
{
$html = new html();
$sql = new sql();
$query = "select $tipo from nosotros";
foreach($sql->fetch_assoc($query) as $row)
{
$value = $row[$tipo];
}
$contenido =$html->div(NULL,$value);
$r = new xajaxResponse();
$r->assign($tipo,"innerHTML",$contenido);
return $r;
}
$xajax->register(XAJAX_FUNCTION, "modificar_div");
$xajax->processRequest();
?>
Notaran que existen varias constantes dentro de la hoja xajax. Estas son definidas en un archivo define.class.php que toma las variable $config de un archivo config.php que he creado.
Mi problema es que cuando no hago instancias de los objetos es decir que en vez de escribir $contenido = $html->div(...) escribo $contenido = '<div id = "eldiv">'.$value.'</div>'; la funcion trabaja correctamente al instanciar los objetos pierde completa funcionalidad.
Lo mismo sucede al intentar conectar a la base de datos, no importa si creo la Instancia de SQL o no no se conecta con la base de datos
Les mostrare tambien el arbol de las carpetas para que puedan identificar mejor el problema si eso ayuda
Los archivos seleccionados son los que les he mencionado antes
Por favor, necesito ayuda lo mas pronto posible!