Por lo que he leido les comento como es mi idea, tengo un archivito producto.phpque es quien maneja por asi decirlo todo el tema de los productos, es decir jugando con los GETs con $_GET[Opreacion] y GET[Accion] manejo todo las posibilidades con los productos (Busqueda, Alta, Modificacion, etc.) y depende lo que contengan los GETS se llama al metodo de la clase ControlarProducto que se necesite
Otra aclaracion importante es que trabajo con AJAX es decir tengo un index.php que dentro del body hay un div llamado <div id='carga'></div> que es donde cargo por ejemplo mi producto.php que es quien maneja las operaciones de los productos como les mensione antes.
Algo asi es como estoy diviendo mis archivos en el proyecto, solos les pongo los archivos que mensionare, tambien debo aclararles que hay clases para manejo de usuarios que son en realidad dichas clases las que trabajan con los producos pero para simplificar no las pongo en este mini ejemplo.
Proyeco
index.php
-->Clases
------>class.Producto.php
------>class.Proveedor.php
-->Views
------>formAltaProducto.php
------>resultadoDeBusqueraProducto.php
------->formBuscarProducto.php
------->productos.php
-->Controllers
-------->class.controladorProducto.php
-->Model
-------->class.ModelProveedor.php
-------->class.ModelProducto.php
class.ControladorProducto.php
Código PHP:
<?php
class ControladorProducto{
function __construct() {
}
function getVistaAlta(){
include("../Views/formAltaProducto.php");
}
[B]function getVistaBuscarOMostrarProductos(){ Duda si esta bien asi, abajo explico. [/B]
include("../Views/formBuscarProdutos.php"); // inserta el formulario de busqueda un campo y un combo que selecciona la categoria.
[B]$usr = recupera el usuario por asi decirlo.[/B]
if($_GET['Accion']=='Buscar'){
$valor = $_POST['textBuscar'];
$campo = $_POST['comboBuscar'];
$resultado = $usr->buscarProductos($valor, $campo);
include("../Views/tablaResultadoBuscarProductosCliente.php"); // trabaja y muestra lo que contien $resultado.
}else{
$resultado = $usr->mostrarProductos();
include("../Views/tablaResultadoBuscarProductosCliente.php"); // trabaja y muestra lo que contien $resultado.
}
}
}
?>
$controladorProducto->getVistaMostrarOBuscarProductos(), ese metodo como se ven en el codigo median la instancia de la clase usuario (Que puede ser cliente o vendedor o administrador) llama al metodo buscar o mostrar producto, la clase cliente por asi decirlo instancia el ModeloProducto y realiza la operacion, una vez teniendo el resultado se llama al resultadoDeBusqueraProducto.php que es quien la muestra en definitiva.
Simplificando las cosas algo asi seria el metodo que llama:
Código PHP:
function mostrarProductos(){ // supongamos que es un cliente
$modelProductos = new ModelProducto();
return $modelProductos->listarProductos();
}
obviamente mis formulario no es asi pero lo dejo simpel como para que se entienda mi problema.
Código PHP:
<form name="formProducto" id="formProducto" action="<?php echo $accion; ?>" method="post" enctype="multipart/form-data">
<?php
$modelProveedor = new ModelProveedor();
$resultado = $modelProveedor->listarProveedoresCombo();
?>
<select name='proveedores' id='proveedores'>
<?php
for ($i = 0; $i < $resultado->cantidad(); $i++) {
$proveedor = $resultado->retornar($i);
?>
<option value=" <?php echo $proveedor->getIdProveedor(); ?> >
<?php echo $proveedor->getProveedor();?>
</option>
<?php } ?>
</select>
<input id="textProducto" type="text" onblur="validarTextProducto();" />
</form>
Como puedo solucionar esto??? esta bien como el orden y lugar donde realizo las llamadas y operaciones??
por lo que lei se que debe ser algo asi, pero tengo mis dudas.
como ultimo comentario les dejo un mini esquema de como son las llamadas.
Se cargan asi:
index.php (Contiene los archivos de validacion JAVASCRIPTS)
LLAMA A:
productos.php
(que contiene los require de las clases necesarias para las operacion con los productos.)
mediante la instancia del controlador, con el include
LLAMA A:
formAltaProducto.php (Que necesita las clases cargadas en productos.php y ahi va el ERROR)
Bueno gente espero que se entienda y desde ya gracias por leer el post, cualquier duda que tenga se las aclaro, les agradezco cualquier respuesta o sugerencia.
Saludos.
NicoStone.
bueno espero haberme explicado bien y que se entienda