.cgi et javascript

jul -  
 jul -
Comment faire pour atteindre la valeur d'un champs d'un formulaire à partir d'un autre formulaire tous deux en .cgi???

le champs est celui ci:
echo '<INPUT TYPE="text" NAME="type" VALUE="'.$ligne[0].'" >';}?></td>

le but est d'inclure cette valeur dans mon premier formulaire.
je voulais faire quelque chose de la sorte:

function ajout(){
opener.document.getElementById('type').value="????valeur de mon formulaire 2";
}

5 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
toujours au même endroit à ce que je vois.. :)

Tu peux pas faire un :
this.parent.

pour acceder justement à la fenetre parente de celle ou tu as ton deuxieme formulaire qui doit modifié le premier.
Puis ensuite, si on admet que ton premier formulaire a le champ (celui qui doit etre modifié) identifié par : id='champ1' :
this.parent.getElementById("champ1").value = "toto";


En tout cas c'est un truc de ce genre la, qu'il faut faire..

++
0
jul
 
je vais essayer ce code dessuite. Par contre jme suis rendu compte que le onunload ne fonctionne pas sur mon formulaire fille. Je travaille avec Konqueror.

Et meme lorsque j'écrit juste onunload="alert('bidule')" rien ne se met...

(j'écris mon onunload dans le body).
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
perso je ne met jamais aucune action liée au onunload. Mais l'action que tu souhaite (changer la valeur dans le premier formulaire puis quitter la fenetre) sur ton bouton submit ou ailleur.
0
jul
 
Bon je n'arrive toujours pas a le faire marcher.

j'ai mis ma fonction dans la popup:
<head>
<script language="javascript">
function ajout(){
this.parent.getElementById('type').value="truc2";
}
</script>
</head>


et j'ai dans un fichier cadre formulaire la génération du bouton submit.

ji est donc inclu ce code:
 echo '<p align=center><input type="submit" name="Submit" value="Ajouter" OnClick="javascript:ajout()"></p>'."\n";
    echo '<INPUT type="hidden" name="num_enr" value="'.$num_enr.'">'."\n";
    echo '<INPUT type="hidden" name="mode" value="formulaire">'."\n";
    echo '<INPUT type="hidden" name="objet" value="'.$objet.'">'."\n";
    echo '<INPUT type="hidden" name="action" value="ajouter">'."\n";
    echo '<INPUT type="hidden" name="bd" value="ok">'."\n";
   }


Est ce que ca peut marcher en mettant la fonction dans ce submit??

et sinon vois tu une erreur dans ce code??
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
non ce n'est pas comme ca qu'il faut faire.
Si ton script s'appelle fichier.php :

<html>
<head>
<script language="javascript">
function ajout( valeur ){
this.parent.getElementById('type').value= valeur ;
}
</script>
</head>
<body>

<?php

if(isset($_POST['Submit'])) {
   // Ici on effectue les traitements :
   if( $_POST["champachanger'] != ""){
      // Changement nouvelle valeur :      
      echo "<script  language=\"javascript\">
      ajout(".$_POST['champachanger'].");
      </script>";

      // Fermeture de la fenetre :
      this.close    // Trouver la méthode qui ferme la fenetre.
   }
   else
      echo "<script language=\"javascript\"> alert(\"Mauvaise valeur pour le champ\"); </script>";

}

   // On affiche le formulaire :
    echo '<form action="fichier.php" method="post">';
    echo 'Changer : <input type="text" name="champachanger" value="Changer la valeur"><BR>';
    echo '<INPUT type="hidden" name="num_enr" value="'.$num_enr.'"><BR>';
    echo '<INPUT type="hidden" name="mode" value="formulaire"><BR>';
    echo '<INPUT type="hidden" name="objet" value="'.$objet.'"><BR>';
    echo '<INPUT type="hidden" name="action" value="ajouter"><BR>';
    echo '<INPUT type="hidden" name="bd" value="ok"><BR>';
    echo '<p align=center><input type="submit" name="Submit" value="Ajouter"></p><BR>';
    echo "</form>";

?>

</body>
</html>


Voilà, comme cela tu rappelle ta page quand tu clique sur le bouton submit, les test sont effectués et si tu as changer la valeur du champ que tu souhaite modifier, alors le chanegment est effectué dans la premiere fenetre et la popup sera fermée.

Il te reste à trouver comment fermer la popup, et comment modifié le champ de ta premiere fenetre car je ne suis pas sur que ce soit bon ce que je t'ai donné pour la fonction en JS.

++
0
jul
 
Il me faudrait 2 3 précisions s'il te plait.

tout le code que tu donnes je l'écris dans ma popup?

Mais le code qui génère le bouton submit sur tous mes formulaires se situe dans un autre fichier...donc je fais comment.

Deuxième chose:
tu me dis que le code verifie si j'ai modifier ma valeur....
Mais l'ouverture de la popup permet d'entrer une valeur qui s'ajoutera dans le 1er formulaire et non pas de modifier mes valeurs.Ton code fonctionne toujours dans ce cas la???

(merci pour ton aide)
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Mais le code qui génère le bouton submit sur tous mes formulaires se situe dans un autre fichier...donc je fais comment. 


je comprend pas ce que tu veux dire par la.

Réponse 2 : en fait c'est pour ajouter une valeur, dans ce cas cela revient au même : tu as un champ dans lequel l'utilisateur rentre une valeur, et c'est dans ta fonction JS que tu change de méthode : plutot que de changer, tu ajoute la valeur :
A la place de :
this.parent.getElementById('bidule').value = valeur;

Tu regarde s'il n'y a pas une méthode pour ajouter un élément, puisq'il s'agit d'un liste.
Comme ca par exemple :
var long = this.parent.getElementById('bidule').length;
this.parent.getElementById("bidule")[long+1] = new Option(valeur);
this.parent.getElementById('bidule).length++;


Je te met le code ci-dessus pour que tu vois ce que je veux dire mais ce n'est pas forcément le bon. Il faudrait que qqun de plus expérimenté en Javascript te renseigne sur comment atteindre les option d'une liste déroulante.

Voilà

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jul
 
je crois que j'arriverai jamais a m'en sortir comme ca.

Pour moi le plus simple c de rafraichir le formulaire.

mais en gardant les valeurs déja incluses dedans.

Ca doit pas etre trop compliquer a faire en php si??

quelqu'un a t'il l'algorithme ou une piste pour m'aider?
0