Ayuda

0 views
Skip to first unread message

shadow

unread,
Jun 2, 2009, 9:53:36 PM6/2/09
to Yupp Framework PHP
saludos tengo un problema en el siguiente codigo estoy generendo y
enviando tres listados (empresas, puestos, y tipos de usuario) para
agregarlos agregarlos en crear.view ya que son datos que necesito para
empresa_id, puesto_id, tipo_id.


Codigo del controlador

$this->params['empresa'] = Empresa::listAll($this-
>params);
$this->params['puesto'] = Puesto::listAll($this->params);
$this->params['tipo'] = Tipo::listAll($this->params);
return $this->render("usuario/crear", & $this->params);


Codigo de la vista:

Empresa:
<select name="empresa_id">
<?php
foreach($m->get('empresa') as $empresa)
echo "<option value=".$empresa->getId().">".$empresa->getNombre
()."</option>";
?>
</select>
Puesto:
<select name="puesto_id">
<?php
foreach($m->get('puesto') as $puesto)
echo "<option value=".$puesto->getId().">".$puesto->getNombre
()."</option>";
?>
</select>
Tipo:
<select name="tipo_id">
<?php
foreach($m->get('tipo') as $tipo)
echo "<option value=".$tipo->getId().">".$tipo->getNombre()."</
option>";
?>
</select>

el problema es que al momento de ir a la pagina me marca el siguiente
error:

Mensaje:
Undefined offset: 1 [C:\xampp\htdocs\GAC\index.php : 20]

Traza:
#0 C:\xampp\htdocs\GAC\core\layout\core.layout.LayoutManager.class.php
(83): my_warning_handler(8, 'Undefined offse...', 'C:\xampp
\htdocs...', 83, Array)
#1 C:\xampp\htdocs\GAC\core\web\core.web.RequestManager.class.php
(242): LayoutManager::renderWithLayout('components/gac/...')
#2 C:\xampp\htdocs\GAC\index.php(96): RequestManager::doRequest()
#3 {main}

lo curioso escuando quito uno de los listados:

$this->params['empresa'] = Empresa::listAll($this-
>params);
// $this->params['puesto'] = Puesto::listAll($this->params);
$this->params['tipo'] = Tipo::listAll($this->params);
return $this->render("usuario/crear", & $this->params);

carga el view como es obvio sin los datos de uno de los select

en que estoy mal o que es lo que me falta

espero que alguien me pueda ayudar...

saludos

pablopazos

unread,
Jun 3, 2009, 11:24:58 AM6/3/09
to Yupp Framework PHP
Buenas,

El problema puede radicar en el HTML generado.

Para ayudarme a detectar el error, por favor, ve a la clase: core/
layout/core.layout.LayoutManager.class.php y en la línea 82 (antes de
la línea 83 donde da el error) has:

print_r( $view );
print_r( $coincidencias );

y envíame lo que te imprime cuando te da error.


Te agradezco mucho que te tomes tu tiempo para ayudarme a encontrar el
problema.


Saludos,
Pablo.

shadow

unread,
Jun 3, 2009, 4:32:57 PM6/3/09
to Yupp Framework PHP
Cuando coloco:

print_r( $coincidencias );

me muestra lo siguiente:

Array ( [0] => )

seguido del error que te mostre anteriormente

y al colocar print_r( $view );

me muestra los datos del formulario

de todos modos si quieres ver el error en la pagina lo acabo de subir
a un hosting gratuito:

http://proyectogac2.260mb.com

usuario: ivadeco
password: 20106185

Pablo Pazos

unread,
Jun 3, 2009, 5:22:24 PM6/3/09
to yuppfram...@googlegroups.com
No he podido acceder con esos datos, me dice que el usuario no existe.

Por las dudas verifica bien que tu HTML tenga la forma correcta>

<html>
<head>
...
</head>
<body>
...
</body>
</html>

Saludos,
Pablo.

2009/6/3 shadow <idesantiag...@gmail.com>



--
Atte.
A/C Pablo Pazos Gutierrez
http://www.simplewebportal.net
http://pablo.swp.googlepages.com/home

pablopazos

unread,
Jun 3, 2009, 5:27:38 PM6/3/09
to Yupp Framework PHP
Viendo el HTML de la pantalla de login ya encontré un error:

<layout name="login" />
<html>
<head></head>
<body>

Debería ser:


<html>
<layout name="login" />
<head></head>
<body>


Te dejo la página de la documentación donde habla de LAYOUT:
http://www.simplewebportal.net/yupp_framework_php_doc/8_layout.html


Espero que te sirva, luego me cuentas si se solucionó el problema.


Saludos,
Pablo.


On 3 jun, 18:22, Pablo Pazos <pablo....@gmail.com> wrote:
> No he podido acceder con esos datos, me dice que el usuario no existe.
>
> Por las dudas verifica bien que tu HTML tenga la forma correcta>
>
> <html>
> <head>
> ...
> </head>
> <body>
> ...
> </body>
> </html>
>
> Saludos,
> Pablo.
>
> 2009/6/3 shadow <idesantiagocontre...@gmail.com>

shadow

unread,
Jun 3, 2009, 5:37:51 PM6/3/09
to Yupp Framework PHP
sorry me comi un numero de la contraseña

usuario:ivadeco
contraseña:201061850

donde tego el problema es al querer agregar un nuevo usuario

pablopazos

unread,
Jun 3, 2009, 7:59:29 PM6/3/09
to Yupp Framework PHP
Si, es un tema de HTML mal formado.

En principio ya te conté del error en donde va la TAG de layout en la
pantalla de login.

Ahora si entras en la página de usuarios, esa también tiene problemas
en el HTML:

<html>
<layout name="index" />
<head></head>
<body>
...
</body>
</html>
</body>
</noscript>
</div></div>
</html>
)
<html>
<head>
...
<head> </head>
<body>
<div class="pagina">
...

¿Se entiende cual es el error?

Lo mismo pasa cuando quieres agregar un usuario, solo que el framework
ahí te avisa de que algo anda mal, en los otros casos no te avisa
porque la TAG de layout no está puesta en el lugar correcto (luego de
<html>).

Intenta generar vistas con HTML válido y luego probar de nuevo. Puedes
usar el validador de la W3C para validar tu HTML generado: http://validator.w3.org/


Si tienes otro problema no dudes en consultar.

Saludos,
Pablo Pazos Gutiérrez.

shadow

unread,
Jun 17, 2009, 1:22:10 PM6/17/09
to Yupp Framework PHP
saludos estoy generando codigo para poder realizar una edicion masiva
pero resulta que al momento de guardar los datos me guarda solo el
primero y los demas no los toma en cuenta y no me muestra error alguno

codigo del controlador:

public function actualizarempleadosAction()
{
if($this->logedAction()!==true)
return $this->redirect(array('controller'=>'usuario',
'action'=>'login'));
$list = YuppSession::get("login");
$id = $list->getEmpresa_id();
$obj = Empresa::get( $id );
$this->params['object'] = $obj;
$empleado = YuppConventions::tableName( 'EmpresaEmpleado' );
$this->params['empleados'] = EmpresaEmpleado::findby(Condition::EQ
($empleado, "empresa_id", $obj->getId()),&$this->params);
if ( array_key_exists('doit', $this->params) )
{
$contador = 1;
while(array_key_exists('id'.$contador, $this->params))
{

$empleado = new EmpresaEmpleado(array(
"id" => $this->params["id".$contador],
"total" => $this->params["total".$contador],
"empresa_id" => $this->params["empresa".$contador],
"empleado_id" => $this->params["empleado".$contador]
));
$id = $empleado->getId();
$obj = EmpresaEmpleado::get( $id );
$obj->setProperties( $empleado );

if(!$obj->save());
return $this->render("actualizarempleados");
$contador++;
}
return $this->redirect(array("action" => "index"));
}
if (!array_key_exists('max', $this->params))
{
$this->params['max'] = 10000;
$this->params['offset'] = 0;
}
return $this->render("actualizarempleados");
}

Codigo de la vista:

<?php

$m = Model::getInstance();

YuppLoader::loadScript("components.gac", "Messages");

$obj = $m->get('object');

?>

<layout name="index" />
<html>
<head></head>
<body>
<img src="../../img/logos/<?php echo $obj->getLogo();?>">
<hr />
<?php echo DisplayHelper::errors( $obj ); ?>
<form action="actualizarempleados" method="post">
<div class="titulo">..::Actualizar empleados::..</div>
<form>
<div class="cont" >
<table>
<tr>
<td><b>Nombre</b></td>
<td><b>Total</b></td>
</tr>
<?php
$contador = 1;
foreach($m->get('empleados') as $empleado)
{
$empleado2 = Empleado::get($empleado->getEmpleado_id());
?>
<tr>
<td><label><?php echo $empleado2->getNombre();?></td>
<td>
<input type="hidden" name="id<?php echo $contador; ?>"
value="<?php echo $empleado->getId();?>">
<input type="hidden" name="empresa<?php echo $contador; ?>"
value="<?php echo $empleado->getEmpresa_id();?>">
<input type="hidden" name="empleado<?php echo $contador; ?>"
value="<?php echo $empleado->getEmpleado_id();?>">
<input name="total<?php echo $contador; ?>" value="<?php echo
$empleado->getTotal();?>">empleados
</td>
</tr>
<?php
$contador++;
} ?>
<tr>
<td colspan="2">
<input type="submit" name="doit" value="<?php echo
DisplayHelper::message("gac.accion.actualizar"); ?>" />
<input type="button" onclick="window.location='<?php echo h
("url", array("action" => "index")); ?>'" value="<?php echo
DisplayHelper::message("gac.accion.cancelar"); ?>">
</td>
</tr>
</table>
</div>
</form>
</form>
</body>
</html>

saludos...

pablopazos

unread,
Jun 17, 2009, 10:16:56 PM6/17/09
to Yupp Framework PHP
Buenas, este sería otro tema pero te contesto en el mismo hilo.

Primero tenes un error en el código: ";" luego del if(!$obj->save());,
hace que nunca haga el render.

Luego, creo que poner el objeto en los params para la vista debería
hacerse luego de validar los datos. Los datos se validan en el save.

if(!$obj->save())
{


$this->params['object'] = $obj;

return $this->render("actualizarempleados");
}

Luego me cuentras como te fue (si es posible en otro hilo de
conversación).


Saludos.

Reply all
Reply to author
Forward
0 new messages