IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

ajax avec zend framework


Sujet :

Zend Framework PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Points : 62
    Points
    62
    Par défaut ajax avec zend framework
    Bonjour à tous,

    Je souhaite obtenir votre aide, afin de réussir un casse tête, certainement super simple pour vous.
    Je mis en place un Drag&Drop jquery-ui qui me permet de droppé plusieurs éléments, je souhaiterais à chaque Drop insérer en base de donnée, mon problème est comment passer en paramétre dans ajax url Zend et comment recupéré dans mon controller les actions passer en ajax et comment enregistré en base de donnée.

    Avant de venir sur ce site afin d'obtenir de l'aide sur ce casse tête, j'ai tenté e réussir tout seul comme un grand donc voici mes débuts :

    ma partie ajax avec jquery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    $(function() {
    			// there's the gallery and the trash
    			var $gallery = $('#gallery'), $trash = $('#trash');
    			$.ajax({
    			type:"POST",
    			url: "<?php $this->baseUrl('/index/index')?>",
    			// j'en sais rien comment faire
     
    			)
     
    			// let the gallery items be draggable
    			$('.slot',$gallery).draggable({
    				cancel: 'a.ui-icon',// clicking an icon won't initiate dragging
    				revert: 'invalid', // when not dropped, the item will revert back to its initial position
    				containment: $('#slot').length ? '#slotbase' : 'document', // stick to demo-frame if present
    				helper: 'clone',
    				cursor: 'move',
     
    			});
    			// let the trash be droppable, accepting the gallery items
    			$arm.droppable({
    				accept: '#gallery  .slot',
    				activeClass: 'ui-state-highlight',
    				drop: function(ev, ui) {
    					deleteImage(ui.draggable);
    				}
     
    			});
    			// let the trash be droppable, accepting the gallery items
    			// let the gallery be droppable as well, accepting items from the trash
    			$gallery.droppable({
    				accept: '#trash  .slot',
    				activeClass: 'custom-state-active',
    				drop: function(ev, ui) {
    					recycleImage(ui.draggable);
    				}
    			});
    			// image deletion function
    			var recycle_icon = '<a href="link/to/recycle/script/when/we/have/js/off" title="Recycle this image" class="ui-icon ui-icon-refresh"></a>';
    			function deleteImage($item) {
    				$item.fadeOut(function() {
    					var $list = $('.slotbaseCard',$arm).length ? $('.slotbaseCard',$arm) : $('<div class="slotabseCard">').appendTo($arm);
     
    					//$item.find('a.ui-icon-trash').remove();
    					$item.append(recycle_icon).appendTo($list).fadeIn(function() {
    						$item.animate({ width: '30px' }).find('img').animate({ height: '39px' });
    					});
    				});
    			}
    			// image recycle function
    			var trash_icon = '<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash"></a>';
    			function recycleImage($item) {
    				$item.fadeOut(function() {
    					$item.find('a.ui-icon-refresh').remove();
    					$item.css('width','30px').append(trash_icon).find('img').css('height','39px').end().appendTo($gallery).fadeIn();
    				});
    			}
     
     
    			// resolve the icons behavior with event delegation
    			$('ul.gallery > li').click(function(ev) {
    				var $item = $(this);
    				var $target = $(ev.target);
     
    				if ($target.is('a.ui-icon-trash')) {
    					deleteImage($item);
    				} else if ($target.is('a.ui-icon-zoomin')) {
    					viewLargerImage($target);
    				} else if ($target.is('a.ui-icon-refresh')) {
    					recycleImage($item);
    				}
     
    				return false;
    			});
    		});
    ma partie controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    // je ne sais pas comment faire pour récuperer ajax
    Merci d'avance de l'aide donc vous pourrez m'apporter.
    sam

  2. #2
    Membre habitué
    Homme Profil pro
    Ingenieur BI - Dev Web Senior
    Inscrit en
    Décembre 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingenieur BI - Dev Web Senior

    Informations forums :
    Inscription : Décembre 2009
    Messages : 118
    Points : 167
    Points
    167
    Par défaut
    Bonjour,

    J'ai une petite question!
    Le code JS est dans un fichier .js ou dans un fichier .phtml ?

    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $this->baseUrl('/index/index')?>
    Tu as oublié le "echo", et il faut enlever "/index/index" de l'intérieur et le concaténer avec "$this->baseUrl()".
    Tu aura donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->baseUrl() . '/index/index'; ?>

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Si ton code JQuery est dans un fichier externe accédé par <script src="foo"></script>, il ne sera pas interprété par php.

    Une possibilité est de paramétrer ta fonction avec une variable destinée à recevoir l'url cible.

    S'il n'y a aucune trace de javascript dans ta vue, tout étant déclaré avec les événements JQuery, il faudra trouver autre chose...

    Pour récupérer les paramètres passés en Ajax, par contre, c'est plus simple : tout sera dans la requête HTML que tu peux obtenir dans ton action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $this->getRequest();

Discussions similaires

  1. [ZF 1.11] Ajax avec Zend Framework et JQuery Mobile
    Par cr0wseb dans le forum Zend Framework
    Réponses: 4
    Dernier message: 30/01/2012, 17h29
  2. Réponses: 5
    Dernier message: 22/12/2007, 00h33
  3. Réponses: 1
    Dernier message: 28/11/2007, 12h52
  4. [View] Problème d'accents avec zend framework
    Par fanette dans le forum Autres composants
    Réponses: 3
    Dernier message: 14/08/2007, 17h17
  5. Insert avec zend framework
    Par rugby_roux dans le forum Zend
    Réponses: 1
    Dernier message: 30/01/2007, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo