Lancer un script depuis javascript - HTML/CSS - Programmation
Marsh Posté le 14-02-2006 à 21:19:26
L'événement onClick est géré par le navigateur, donc du côté du client.
Est-ce que c'est pour un intranet, et les utilisateurs auront des scripts Perl sur leurs postes clients ? Par ailleurs, pour des raisons de sécurité, le navigateur n'exécute pas d'applications sur le poste client, sauf dans des cas particuliers d'Applets ou ActiveX autorisés.
La solution consiste donc plutôt à récupérer, sur le poste serveur, les données envoyées par un formulaire, et à les traiter, éventuellement avec Perl ou un autre langage. Donc, ce n'est pas un traitement dépendant directement de onClick, mais un traitement dépendant de la réception d'une requête HTTP.
Marsh Posté le 15-02-2006 à 10:25:41
C'est exactement ça.
Un script du côté serveur qui ne modifierait qu'une partie de la page htm en retour (un peu comme ajax).
Le truc c'est que je ne sais pas trop comment soumettre un formulaire et déclencher ensuite sur le serveur un script en fonction des infos envoyées...
Marsh Posté le 20-02-2006 à 08:50:14
Je ne penses pas que tu puisse lancer l'exécution d'un script perl depuis un script javascript. Si tu veux utiliser un bouton, il faut utiliser submit qui permet de transferer des variable soit GET ou POST et en fonction de la valeur des variables, tel ou tel script peut-être exécuter serveur.
Exemple en PHP:
echo "<form method=\"post\" action=\"pageWeb.php3\">";
echo "<input type=\"submit\" value=\"Enregistrer\" name=\"Bouton\">";
echo "<input type=\"hidden\" value=\"Ducros\" name=\"Nom">";
echo "<input type=\"hidden\" value=\"Nice\" name=\"Ville\">";
echo "</form>";
Le formulaire est mis entre les balises: <FORM METHOD> et </FORM>
Il y'a un bouton submit dont le nom est Bouton et la valeur Enregistrer.
Il y'a 2 sauvegardes de variables Nom de valeur Ducros et Ville de valeur Nice.
On appel la page pageWeb.php3.
Pour récupérer les valeurs des variables dans cette page, on utilise: $_POST[Bouton], $_POST[Nom] et $_POST[Ville].
Ainsi tu peux par exemple dans ta page appelée, qui peut tres bien etre la meme que celle qui contient le bouton submit, dire si telle variable a telle valeur, il sera executer tel script.
Marsh Posté le 21-02-2006 à 22:30:49
Je vais faire un exemple simple: on veut remplir un textArea avec des données générées par un script PERL
Pour y arriver, il faut ajouter dans ta page un iframe caché:
<iframe name="monFrame" style="position:absolute;left:-200px;top:-200px;with:10px;height:10px" src="empty.html"></iframe>
(empty.html est une page html "vide", c'est à dire le minimum de tags pours être valide)
Voici le code du text area
<textarea id="monText"></textarea>
Pour invoquer la page, il faut attacher à un elemnt cliquable une fonction de ce style:
function clickAction()
{
frames.monFrame.location.replace("toto.pl?param1=value1¶m2=value2" );
}
le nom et les paramètre de la page sont un exemple
la page PERL doit générer dans la page du javaScript de cette forme :
<html>
...
<head>
...
<script language="javascript">
function fillText()
{
parent.document.getElementById("monText" ).value="text text\n\"exemple\" \\";
}
</script>
</head>
<body onload="fillText()"></body>
</html>
dans ce cas, le text area affichera:
text text
"exemple" \
ce sera la partie générée par le script PERL
(j'ai mis dans l'exemple des caractères ", retour chariot et \ pour montrer qu'il faut les encoder avec un \ pour eviter des erreurs de script)
Ca marche très bien, et on peut avoir des comportement très proches de ce qu'on obtient avec du XMLHttp (AJAX)
Marc
Marsh Posté le 14-02-2006 à 18:07:21
Salut à tous!!
Voilà mon soucis :
je voudrais pouvoir lancer un script perl depuis une fonction onclick par exemple, et récupérer le contenu d'un fichier que me génère le perl.
Comment puis je faire?
Merci