envoi de données par javascript à une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : envoi de données par javascript à une page

par woodyfrance » 29 janv. 2008, 11:40

Petite précision, ça fonctionne sans problème sous Firefox...

par woodyfrance » 29 janv. 2008, 10:27

C'est exactement ça, j'ai 2 fenêtres, le popup puis une fenêtre IE standard. La fenêtre IE qui contient bien les données que je souhaite afficher, celles de mon formulaire et le popup qui est vide....

merci

par d0m » 29 janv. 2008, 09:33

merci Ryle!

Sinon pour ton problème woodyfrance, tu as 2 fenêtre en plus qui s'ouvrent au lieu d'une?
Quelles sont les propriétés de ces fenêtres? (nom,...)

par woodyfrance » 28 janv. 2008, 17:22

Bonjour à tous,

Je dois être vraiment benet mais je suis incapable de faire marcher ce bout de code. Voici mon javascript et un morceau de mon formulaire :

Code : Tout sélectionner

function ouvrir_popup(formulaire){ window.open(\" \", \"ma_popup\", \"menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=600\"); formulaire.submit(); return false ; } <FORM METHOD=\"post\" target=\"ma_popup\" name=\"FormNewCat\" action=\"ajout_cat.php\" onsubmit=\"return ouvrir_popup(this);\" > ... ... <input type=\"submit\" id=\"bouton_valider\" value=\"Valider\">
J'ai 2 fenêtres qui s'ouvrent (pas des popups), l'une qui contient mon formulaire et l'autre qui correspond bien à la page que je souhaite afficher. Au secours !

Merci de votre aide

par Ryle » 11 janv. 2008, 16:53

Méééeuhhh ? C'est fini de faire qu'à m'embêter ? :)

Bon bah dans ce cas, tu colles un compteur dans le nom de la popup pour qu'il change à chaque fois ? ;)
<script ...>  
var nbPopup = 0;

function ouvrir_popup(formulaire){  
    window.open("", "ma_popup_"+nbPopup, "menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=600");  
    formulaire.target = "ma_popup_"+nbPopup; 
    formulaire.submit(); 
    nbPopup++;

    //pour empecher la validation finale du formulaire  
    return false  
}  
</script>  

par d0m » 11 janv. 2008, 16:37

Merci l'idée est très bonne, je n'y avait pas pensé.
Cependant si on change les données dans le formulaire pour ouvrir une nouveau popup, la page sera chargée dans le premier popup.

Dans mon cas, j'utilise cela pour générer des graphiques et il est intéressant d'en avoir plusieurs ouverts.

par Ryle » 11 janv. 2008, 16:22

Pas en php non... php = serveur, navigateur et nouvelle fenêtre = client, tout ça... :)

En revanche, tu peux ouvrir une nouvelle fenêtre en javascript avec windows.opent() et lui donner un nom à la place de "_blank" (en deuxieme argument de la fonction open()). Il te suffit ensuite de modifier le target du formulaire (ou de l'avoir prévu au préalable) et de faire un submit() pour que celui-ci soit envoyé vers ta popup comme si l'utilisateur venait de passer par le bouton submit :)

En gros :
<html> 
<head> 
<SCRIPT> 
  function ouvrir_popup(formulaire){ 
    window.open("", "ma_popup", "menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=600"); 
//  formulaire.target = "ma_popup"; // en option, j'ai pré-renseigné dans le formulaire directement
    formulaire.submit();

    //pour empecher la validation finale du formulaire 
    return false 
  } 
<SCRIPT> 
</head> 

<body> 
  <FORM NAME="..." METHOD="POST" ACTION="page.php" TARGET="ma_popup" onsubmit="return ouvrir_popup(this)" > 
  ..... 
  </FORM> 
</body>   
</html>
Nota : l'attribut onSubmit="" d'un formulaire n'est pas déclenché par la fonction javascript submit() de celui-ci, mais seulement par une soumission naturelle (bouton submit ou touche entrée)

envoi de données par javascript à une page

par d0m » 11 janv. 2008, 15:42

Bonjour,

je cherche à améliorer mon application intranet PHP.
Dans certaines pages, j'ai un formulaire avec un bouton submit.
Lorsqu'on clique sur ce bouton, une nouvelle fenêtre est ouverte comportant une page qui traite les données du formulaire.

Pour faire de cette fenêtre un popup, je suis passé par du javascript. Voici le code pour éclairer un peu :
<html>
<head>
<SCRIPT>
  function ouvrir_popup(formulaire){
    //récupération des données du formulaire
    page = fomulaire.action +"&......";
    
    window.open(page,"_blank","menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=600");

    //pour empecher la validation finale du formulaire
    return false
  }
<SCRIPT>
</head>

<body>
  <FORM NAME="..." METHOD="POST" ACTION="page.php" TARGET="_blank" onsubmit="return ouvrir_popup(this)" >
  .....
  </FORM>
</body>  
</html>
Ca permet, bien que c'est pas utile dans mon cas, de permettre l'ouverture de la page même si javascript est désactivé.

Ce qui me chagrine, c'est que toutes les informations sont passé par URL en ouvrant le popup javascript, je prefererais un comportement comme la methode POST de PHP.
Y'a t il moyen de le faire ou d'ouvrir un popup avec du php pure?