CGI + Javascript [Résolu]

Signaler
Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
-
Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
-
Bonjour,
Je suis actuellement en train de développer une application Web (à l'aide d'exécutable CGI) en utilisant la "technologie" Ajax sous Linux. Le souci est que je n'arrive pas à invoquer des fonctions javascript dans mon appli. Par exemple:
...
<script type="text.javascript" src="../script/fonction.js"></script>
...
<select name="selectbox" onchage="ChangeValue()">
<option>item1</option>
<option>item2</option>
</select>
...

où ChangeValue() est une fonction javascript présente dans le fichier fonction.js.

Je précise que ce bout de code fonctionne dans des pages HTML classiques.
Quelqu'un a-t-il déjà eu un souci équivalent? Merci de me communiquer toute information me permettant de résoudre mon pb...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

7 réponses

Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
93
Evolution du problème:

Quand j'écris directement mes fonctions Javascript dans mes pages (et non pas dans un javascript séparé), cela fonctionne.



En attendant que quelqu'un me dise pour quoi cela marche ainsi et pas dans un fichier js séparé, je ferais comme cela...



Merci quand même Bultez

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,
c'est qu'il y a une erreur... ailleurs...
mais sans plus de code : impossible à dire.
Cordialement. Bul. ~ Site ~
Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
93
Désolé, une faute de frappe dans mon bout de code: il faut lire onchange au lieu de onchage...

Plus de code ne servirait à rien: même ceci (en rajoutant les balises HTML classiques) ne fonctionne pas. Disons que la fonction ChangeValue() se présente ainsi:
function ChangeValue()
{
alert("coucou");
}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
si, si, ça ça marche....

<script type="text.javascript">
function ChangeValue()
{
alert("coucou");
}
</script>


<select name="selectbox" onchange="ChangeValue()">
<option>item1</option>
<option>item2</option>
</select>

sauf que la 1ère ligne est sélectionnée par défaut
et qu'il faut d'abord cliquer sur la ligne 2 qui
dira "coucou" pour qu'un click sur la ligne 1
dise lui aussi "coucou"

si c'est ça l'erreur =>
mettre size>1 dans select
ou faire select.selectedIndex=-1 en fin de chargement de la page.

ou l'erreur est ailleurs, mais
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
message un peu tronqué....

je disais donc,

ou l'erreur est ailleurs, et même si ça ne sert à rien,
impossible pour nous de dire où elle est,....
sans plus de code.

Cordialement. Bul. ~ Site ~
Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
93
Ah il veux du code le monsieur!? Il va être servi... Une petite précision quand même: je sais que ce bout de code fonctionne sur une page HTML classique mais moi, je suis dans un contexte CGI..

Voici mon programme en C (compilé en CGI):
#include <stdio.h>
#include "cgic.h" // pour créer un fichier CGI

void main(void)
{
fprintf(cgiOut,"<html><head>\n");
fprintf(cgiOut,"<script type="text/javascrip" src="../script/fonction.js"></script>\n");
fprintf(cgiOut,"</head>\n");

fprintf(cgiOut,"<select name="selectbox" onchange="ChangeValue()">\n");
fprintf(cgiOut,"<option>item1</option>\n");
fprintf(cgiOut,"<option>item2</option>\n");
fprintf(cgiOut,"</select></html>\n");
}

Dans mon fichier fonction.js:
function ChangeValue()
{
alert("coucou");
}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14890
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 décembre 2020
93
De plus, voici l'environnement technique utilisé:
Serveur: Apache 2
OS: Linux
Arborescence:
- fichier cgi dans /var/www/cgi-bin/
- fichier js dans /var/www/script/

Voici maintenant ma question plus précise:
Est-il possible de faire appel à des fonctions javascript dans un exécutable CGI? Si oui, mon problème est-il dû à une mauvaise configuration du serveur Apache?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...