Skip to Content

incloure funcions javascript en una pàgina format php

Vull fer servir una petita funció javascript dins d'un node tipus pàgina, que edito amb format d'entrada PHP.
Tot el PHP funciona perfectament (crea una Taula en una BBDD externa a partir de dues taules de Drupal al prémer un botó ), però intento posar una funció en javascript, per canviar el valor d'alguns camps, i el resultat és que em diu :

Fatal error: Call to undefined function.


He posat la funció al inici de la pàgina, al final,... però el resultat sempre és el mateix.

Hi ha alguna manera de fer-ho ?

Gràcies

Cèsar

imatge de eloiv

fas servir la funció

fas servir la funció http://api.drupal.org/api/function/drupal_add_js quan edites el cos del body que el tens com a format d'entrada PHP?

imatge de cesar

Ho he provat

Ho he provat, però el resultat és el mateix

imatge de markus_petrux

Drupal.behaviors ?

Si el teu javascript ha d'accedir a qualsevol element DOM, hauria de codificar-se seguint unes petites indicacions que es descriuen en els APIs de Drupal.

http://drupal.org/node/205296

Concretament, mira la secció que parla sobre Drupal.behaviors.

Drupal utilitza la llibreria jQuery, i entre les dues bases, es proporciona un mecanisme que permet executar el teu codi quan el document DOM està a punt de ser consultat/manipulat. Si només ens mirem jQuery, això funciona a través de $(document).ready(). Si ens ho mirem des del punt de vista de Drupal, llavors ens hem de mirar Drupal.behaviors.

Per anar bé, el teu fitxer .js hauria de tenir aquest aspecte:

(function ($) {

Drupal.behaviors.elMeuCodiVaAquiDins = function(context) {

  // El meu codi va aquí dins.

};

})(jQuery);

La seqüència de fets és que jQuery executarà Drupal quan el DOM estigui a punt, i llavors el Drupal executarà el teu codi. Tot això, d'una manera ordenada per tal de facilitar la co-existència de mòduls, etc. en la mateixa pàgina.

~~~

Més enllà d'això, comprova que el teu fitxer javascript està realment present dins l'HTML de la pàgina, i que no s'estan generant errors de javascript. En aquesta fase de desenvolupament, val la pena mirar-s'ho amb l'extensió Firebug del Firefox.

Salut!