Lancer un script depuis javascript

Lancer un script depuis javascript - HTML/CSS - Programmation

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

Reply

Marsh Posté le 14-02-2006 à 18:07:21   

Reply

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.

Reply

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...

Reply

Marsh Posté le 18-02-2006 à 16:28:17    

Aller pliz les gars!!

Reply

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.  

Reply

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&param2=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


Message édité par dmarc34 le 21-02-2006 à 22:44:31
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed