Hola a todos.
Quisiera generar este tipo de mensajes de javascript desde una función
en el action.class.php.
Hasta ahora he visto como hacerlo por ejemplo en los botones con el
evento onclick:
button_to('nombre, 'direccion', 'confirm=mensaje');
Lo que quisiera hacer es lo siguiente:
public function executeCreate()
{
//Contamos los ficheros.
$c= new Criteria();
$c->add(FicherosPeer::EMPRESA,
sfContext::getInstance()->getUser()->getAttribute('numEmpresa'));
$ficheros= FicherosPeer::doCount($c);
if($ficheros== 0){
aquí llamar al alert o confirm.
}
resto código
}
Se que se podría hacer con: echo "<script>alert(mensaje)</script>", pero
estoy seguro que symfony tiene algo previsto para esto.
- --
Saludos cordiales.
Pablo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAklRcn4ACgkQK7lGsMchFsxVwgCgh7kL9AdYLZHEEi+DJK4m/Mjj
0qMAoINiLAPjrElk42mNByugxNaY2yTM
=+3Jo
-----END PGP SIGNATURE-----
Tienes que tener en cuenta que en Sf la respuesta es un objeto en si
mísma, y los echo en las acciones, solo se deberían ver en las etapas
de desarrollo ( más que nada para debug ).
podrias hacerlo así.
public function executeCreate($request)
{
//Contamos los ficheros.
// ... código
if( $ficheros == 0 && $request->getParameter('seguro') )
{
aquí llamar al alert o confirm.
}
else
$this->redirect( 'modulo/confirmar');
resto código
}
No se si me quedo claro.
Daniel González Cerviño
tel 653965048
ika...@gmail.com
2008/12/24 Pablo Braulio <bru...@gmail.com>:
perdón queria decir:
public function executeCreate($request)
{
//Contamos los ficheros.
// ... código
if( $ficheros == 0 && $request->getParameter('seguro') )
{
resto código
José Leonardo Diaz Ordoñez escribió:
> Hola Pablo, creo que tienes un poco confundidos los conceptos de symfony.
> Donde quieres colocar el alert o confirm es imposible, ya que la accion
> se ejecuta del lado del servidor y nunca podria solicitar esa
> informacion al usuario.
>
> Lo que creo debes hacer es invocar el alert justo antes de invocar la
> accion executeCreate, es decir desde la pagina que te genera el
> formulario y que envia la info a la accion create.
> Ahora si existen condiciones especiales que afecten la creacion de algun
> objeto (que me imagino es tu caso, y en consecuencia necesitas confirmar
> al usuario) deberas hacerlo con algun funcion javascript que se ejecute
> antes de enviar el formulario.
> Espero me entiendas sino con mucho gusto te ayudaremos con tus dudas.
>
>
>
En mi caso la función executeCreate no muestra la plantilla
createSuccess, sino que realiza otra acción.
public function executeCreate()
{
//Contamos los ficheros.
$c= new Criteria();
$c->add(FicherosPeer::EMPRESA,
sfContext::getInstance()->getUser()->getAttribute('numEmpresa'));
$ficheros= FicherosPeer::doCount($c);
if($ficheros== 0){
$this->forward('ficheros', 'list');
}
$con = Propel::getConnection();
$sql = 'select
crear_doc_seguridad('.sfContext::getInstance()->getUser()->getAttribute('numEmpresa').')';
$statement = $con->prepareStatement($sql);
$rs= $statement->executeQuery();
if($rs){
$this->forward('plantilladocsegcliente', 'list');
}
}
Se trata de que en el caso de que la primera consulta no muestra datos,
o la cuenta de estos sea "cero", muestre una alerta al usuario para que
actue o pida confirmación.
Antes de usar symfony, esto lo podía hacer de este modo:
consulta
if($ficheros== 0){
echo "<script>alert(MENSAJE)</script>";
}
Ya se que php y javascript son dos lenguajes distintos y que cada uno se
ejecuta en un entorno (servidor y cliente).
Otro modo de hacerlo sería redirigiendo a una plantilla creada para tal
efecto que tenga el mismo contenido. El cualquier caso creo que se
trataría de hacer lo mismo pero con mas trabajo.
- --
Saludos cordiales.
Pablo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAklRe/wACgkQK7lGsMchFszewwCgpeQ+raLoGGmDalrr06UxLeIA
XOIAnApk5U8fYw/o9IqM82Je7OfBvINq
=9WK8
-----END PGP SIGNATURE-----