Ik ben bezig met een plug-in voor Wordpress. De admin kan het ik helemaal klaar. Het is de bedoeling dat een speciale tag wordt vervangen met een formulier. Ik maak gebruik van Mootools: inladen van nieuwe *.php in een div (AJAX).
Ik roep een functie aan door add_filter('the_content','insertForm'); in te root-file te plaatsen. Hierdoor wordt de php-functie insertForm() aangeroepen met als parameter de content uit de database (waar ook mijn speciale tag in zit). Dit gaat allemaal goed, en als ik in de functie insertForm($content) een return $content geef, komt de inhoud gewoon op de site.
In de functie heb ik een verwijzing naar de Mootools .js bestand staan. Verder maak ik er de javascript code in en ook de html. Dit alles return ik, zodat het wordt verzonden naar de browser.
Het probleem is nu dat de javascript code (Mootools Ajax functie) wel wordt uitgevoerd, maar de responce komt niet in mijn DIV te staan. Dus: hoe krijg ik het voor elkaar dat dit wel gebeurd?
Ik roep een functie aan door add_filter('the_content','insertForm'); in te root-file te plaatsen. Hierdoor wordt de php-functie insertForm() aangeroepen met als parameter de content uit de database (waar ook mijn speciale tag in zit). Dit gaat allemaal goed, en als ik in de functie insertForm($content) een return $content geef, komt de inhoud gewoon op de site.
In de functie heb ik een verwijzing naar de Mootools .js bestand staan. Verder maak ik er de javascript code in en ook de html. Dit alles return ik, zodat het wordt verzonden naar de browser.
Het probleem is nu dat de javascript code (Mootools Ajax functie) wel wordt uitgevoerd, maar de responce komt niet in mijn DIV te staan. Dus: hoe krijg ik het voor elkaar dat dit wel gebeurd?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function insertForm($content) { global $pluginName; $pluginNameSmall = strtolower($pluginName); $header = '<script type="text/javascript" src="http://pad_naar_mijn_file.js"></script>'; $html = '<div id="test">hier moet de responce in komen</div>'; $html .= '<script type="text/javascript">window.addEvent(\'domready\', function(){ '; $html .= 'new Ajax(\'http://pad_naar_mijn_file.php\', { method: \'get\',update: $(\'test\') }).request();'; $html .= '});</script>'; $content = str_replace('[mijnTag]',$html,$content); return $header.$content; } |
You cannot not communicate