Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjours, aujourd'hui j'ai eu envie d'utiliser le dialog jquery pour afficher une fenetre de confirmation.
Déjà j'ai remarqué que la doc dit n'importe quoi. En effet ils indiquent de faire un
echo $this->dialog($id, $content, $params, $attribs);
Là Zend View s'affole, il ne trouve pas cette aide.
En cherchant je vois qu'il s'agit d'une faute de leur par et qu'il faut taper ceci:
echo $this->dialogContainer($id, $content, $params, $attribs);
A partir de là, ma fenètre s'affiche.
Le seul problème que j'ai c'est pour afficher mes boutons, je ne sais pas comment faire car dans la documentation JQuery sa donne ceci en code et après côté Zend je ne sais pas comment le coder.
<script type="text/javascript"> $(function() { $("#dialog").dialog({ bgiframe: true, resizable: false, height:140, modal: true, overlay: { backgroundColor: '#000', opacity: 0.5 }, buttons: { 'Delete all items in recycle bin': function() { $(this).dialog('close'); }, Cancel: function() { $(this).dialog('close'); } } }); }); </script>
Si quelqu'un a une idée pour générer les boutons avec l'aide de vue de Zend je l'en remercie.
Hors ligne
j'ai avancé, j'ai réussit à intégrer les boutons mais maintenant j'ai un problème.
Voici mon code permettant de générer ma fenêtre avec les boutons:
<?php echo $this->dialogContainer('test'.$i, 'je test juste celà', array( 'bgiframe' => true, 'autoOpen' => false, 'draggable' => true, 'modal' => true, 'resizable' => false, 'title' => 'Welcome message', 'closeOnEscape' => true, 'buttons' => array('Valider' => 'function() { return true;}', 'Annuler' => 'function() { $j(this).dialog(\'close\');}') )); ?>
Le problème c'est que quand je clique sur l'un des boutons j'ai une erreur dans firebug.
Je me dis que sa viens peut-être du code généré que voici:
$j(document).ready(function() { $j("#test1").dialog({"bgiframe":true,"autoOpen":false,"draggable":true,"modal":true,"resizable":false,"title":"Welcome message","closeOnEscape":true,"buttons":{"Valider":"function() { return true;}","Annuler":"function() { $j(this).dialog('close');}"}}); });
Comme on peut le voir, à l'endroit du bouton quand on appelle function(){...} des guillemets sont générées automatiquement.
Comment les enlever??
c'est tout ce qu'il me reste à faire et j'ai finit donc si quelqu'un a une idée je l'en remercie, je cherche mais je ne trouve rien.
EDIT:
je viens de trouver après avoir chercher une enième fois sur google.
Au niveau des function(){...} on doit faire un new Zend_Json_Expr().
Ce qui me donne ceci au final:
<?php echo $this->dialogContainer('test'.$i, 'je test juste celà', array( 'bgiframe' => true, 'autoOpen' => false, 'draggable' => true, 'modal' => true, 'resizable' => false, 'title' => 'Welcome message', 'closeOnEscape' => true, 'buttons' => array('Valider' => new Zend_Json_Expr('function() { return true;}'), 'Annuler' => new Zend_Json_Expr('function() { $j(this).dialog(\'close\');}')) )); ?>
Maintenant tout marche parfaitement.
Si quelqu'un était coincé au même endroit que moi, il n'a pas besoin de se tracacer
Dernière modification par throrin19 (10-07-2009 14:19:51)
Hors ligne
mais de rien, voici une semaine que je test jquery avec zend. Dès que je trouve une solution je la poste et d'ici quelques semaine je met en place un site avec toutes mes aides.
Après le dialog et l'accordéon je vais m'essayer à autre chose
Hors ligne
bonjour throrin
merci pour tes efforts
j'ai mis le code comme indiqué mais il m'affiche une erreur $j not defined
merci de me donner un coup de main si possible
Hors ligne
oa20 a écrit:
bonjour throrin
merci pour tes efforts
j'ai mis le code comme indiqué mais il m'affiche une erreur $j not defined
merci de me donner un coup de main si possible
j'ai trouvé la solution peut être j'ai mis ce code
<script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
l'erreur est disparu mais quand je clique sur annuler rien ne s'effectue des solutions?
EDIT
j'ai trouvé la solution faut mettre ce code
'Annuler' => new Zend_Json_Expr('function() {jQuery.noConflict(); jQuery(this).dialog(\'close\');}')
Dernière modification par oa20 (17-08-2011 14:03:03)
Hors ligne
Pages: 1