2010-11-10 14 views
2

Je l'ai eu ce travail il y a une heure mais doit avoir changé quelque chose. Comment appeler un ajaxLink en utilisant ZendX pour que tout javascript dans la réponse html soit exécuté? J'ai essayé avec processData depuis que je pense que j'ai utilisé cela mais maintenant cela ne fonctionne pas.Exécuter le code javascript retourné lors de l'utilisation Zend Frameworks ZendX AjaxLink fonction

<?php echo $this->ajaxLink('Click me and I will run the returned javascript code', 
        $this->url(array('controller' => 'foo', 'action' => 'bar')), 
        array('id' => 'myid'), 
           'processData' => true, 
           'method' => 'post', 
           'async' => false 
        ), 
        array('a_posted_id' => $the_posted_id));?> 
+0

Personne ne sait comment exécuter le code javascript retourné ??? :) – inquam

Répondre

0

Cela DEVRAIT fonctionner et est probablement juste un bug quelque part dans le code ajaxLink(). J'ai fini par retourner les données codées JSON et avoir des fonctions javascript pour agir sur les données retournées à la place.

0

Je havnt joué avec ZendX encore, si nu avec moi, theres aucune réponse posté alors il prend un coup de feu à elle.

Comment la réponse est-elle renvoyée?

En général dans le non-zend. Vous pouvez créer une balise javascript via javascript.

var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.text = "the returned javascript"; 
    document.getElementsByTagName('head')[0].appendChild(script); 

Ceci exécutera automatiquement le code.

Ou demandez à votre Ajax de renvoyer une URL à un fichier et, à la place du texte, de définir le src de l'étiquette.

var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = "/the/returned/link.js" 
    document.getElementsByTagName('head')[0].appendChild(script); 

Dans les deux cas, le javascript sera exécuté automatiquement.

Désolé, cela ne fonctionne pas.