Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1261 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Envoyer plusieurs fois données d'un formulaire sans changer de page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer plusieurs fois données d'un formulaire sans changer de page

n°1378335
Infosactua​lite
Macintosh vs. Windows
Posté le 31-05-2006 à 18:10:17  profilanswer
 

:hello:  
 
Je fais appel a vous car j'ai un problème de PHP que je n'arrive pas a résoudre (d'ailleurs, est-il résolvable ?)
 
Je souhaiterais mettre un formulaire qui, une fois activé, envoie $nb fois les données a une page distance MAIS EN RESTANT SUR LA PAGE QUI CONTIENT LE FORMULAIRE
 
Est-ce possible, et si oui, comment ?
 
Je vous remercie d'avance
 
Infosactualité
 
PS : Merci de ne pas trop parler technique :lol:

mood
Publicité
Posté le 31-05-2006 à 18:10:17  profilanswer
 

n°1378338
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-05-2006 à 18:15:32  profilanswer
 

ça fleure bon la limite de la légalité mais bon :o

  • solution 1: tu fais une iframe cachée via css et tu la mets comme target de ton formulaire
  • solution 2:tu fais ça en utilisant xmlHttpRequest ( et son paliatif IE)

n°1378341
Infosactua​lite
Macintosh vs. Windows
Posté le 31-05-2006 à 18:19:33  profilanswer
 

anapajari a écrit :

ça fleure bon la limite de la légalité mais bon :o

  • solution 1: tu fais une iframe cachée via css et tu la mets comme target de ton formulaire
  • solution 2:tu fais ça en utilisant xmlHttpRequest ( et son paliatif IE)


Je pense m'orienter plutot vers la première solution, mais je ne vois pas trop comment la réaliser, je ne savais pas qu'il était possible d'envoyer le formulaire vers une iframe.
 
Je vais voir ca de plus près merci :)

n°1378342
Infosactua​lite
Macintosh vs. Windows
Posté le 31-05-2006 à 18:21:58  profilanswer
 

Au fait pour la légalité j'essaye de faire une protection qui bloque l'ip de l'utilisateur quand il envoie trop de requêtes et que la nouvelle m'arrive par mail, c'est tout.

n°1378360
mIRROR
Chevreuillobolchévik
Posté le 31-05-2006 à 18:48:05  profilanswer
 

Infosactualite a écrit :

Au fait pour la légalité j'essaye de faire une protection qui bloque l'ip de l'utilisateur quand il envoie trop de requêtes et que la nouvelle m'arrive par mail, c'est tout.


 
je pense qu il voulait dire que ca ressemblerait "presque " a un script de spam
peut etre me trompé-je mon savoir est bien limité
 
sinon j aurais dit resolvable soluble [:aloy]  
(c est un peu angliche lailleque)
mais la encore je suis faillible

n°1378363
Infosactua​lite
Macintosh vs. Windows
Posté le 31-05-2006 à 18:50:04  profilanswer
 

Bon en tout cas le coup de l'iframe je sais absolument pas comment faire :D
 
Et le xmlHttpRequest c'est pas un truc Ajax Web 2.0 et compagnie ?

n°1378407
Infosactua​lite
Macintosh vs. Windows
Posté le 31-05-2006 à 20:38:11  profilanswer
 

zup :D

n°1378562
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-06-2006 à 09:10:20  profilanswer
 

Infosactualite a écrit :

Je pense m'orienter plutot vers la première solution, mais je ne vois pas trop comment la réaliser, je ne savais pas qu'il était possible d'envoyer le formulaire vers une iframe.
 
Je vais voir ca de plus près merci :)


tu crées un iframe comme ça:

Code :
  1. <iframe name="pouet" style="display:none; visibility:hidden"/>


et ton formulaire comme ça:

Code :
  1. <form name="truc" action="machin.php" method="post" target="pouet">...


et baste  [:klem3i1]  

n°1378740
Infosactua​lite
Macintosh vs. Windows
Posté le 01-06-2006 à 12:30:47  profilanswer
 

Tiens c'est donc a ca que sert les noms des iframes [:dawa]
 
Je vais essayer ca merci :)


Message édité par Infosactualite le 01-06-2006 à 12:30:56
n°1378773
Infosactua​lite
Macintosh vs. Windows
Posté le 01-06-2006 à 12:59:05  profilanswer
 

Bon j'ai mis ca, j'ai bien fait mon formulaire qui marche très bien, mais la ... un imprévu :D
 
Comment répéter plusieurs fois l'envoi des données de ce formulaire ? [:dawa] Je n'y avais pas pensé, a partir du php comment envoyer ces données a la frame ? :D
 
Merci d'avance (et désolé pour les questions  [:totoz])


Message édité par Infosactualite le 01-06-2006 à 12:59:25
mood
Publicité
Posté le 01-06-2006 à 12:59:05  profilanswer
 

n°1378803
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-06-2006 à 13:34:16  profilanswer
 

je suis en train de t'aider à faire un méga-bouze qui est l'exemple même de tout ce que j'abomine sur le net ... :D
Bref, tu peux ruser en js
Plutot qu'un submit dans ton form tu mets:

Code :
  1. <input type="button" value="pouet" onclick="ApOcALypse()"/>


Et tu déclares la fonction suivante entre balises script dans ton head:

Code :
  1. function ApOcALypse(){
  2. for(i=0; i<1000; i++){
  3.   document.LeNomDeTonFormulaire.submit();
  4. }
  5. }


 
edit: Tu sera peut-être obligé de faire un setInterval de 1 seconde pour que les données aient le temps d'être soumises ( et je te laisse chercher comment faire)

Message cité 1 fois
Message édité par anapajari le 01-06-2006 à 13:35:30
n°1378956
Infosactua​lite
Macintosh vs. Windows
Posté le 01-06-2006 à 15:02:06  profilanswer
 

anapajari a écrit :

je suis en train de t'aider à faire un méga-bouze qui est l'exemple même de tout ce que j'abomine sur le net ... :D
Bref, tu peux ruser en js
Plutot qu'un submit dans ton form tu mets:

Code :
  1. <input type="button" value="pouet" onclick="ApOcALypse()"/>


Et tu déclares la fonction suivante entre balises script dans ton head:

Code :
  1. function ApOcALypse(){
  2. for(i=0; i<1000; i++){
  3.   document.LeNomDeTonFormulaire.submit();
  4. }
  5. }


 
edit: Tu sera peut-être obligé de faire un setInterval de 1 seconde pour que les données aient le temps d'être soumises ( et je te laisse chercher comment faire)


Au moins ca fera pas tache dans mon code certifié non valide XHTML 1.1 strict © :whistle:  
 
Je viens d'essayer, avec ce code :
 

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="ApOcALypse()"></p>
  2. </form>
  3. <script language="Javascript">
  4. function ApOcALypse(){
  5. setInteval(ApOcALypse, 250);
  6. for(i=0; i<1000; i++){
  7.   document.form.submit();
  8. }
  9. }
  10. </script>


 
Quand je clique y'a rien qui se passe [:totoz]  
 
Que faire ?  [:totoz]  
 
merci d'avance ;)

n°1379253
Infosactua​lite
Macintosh vs. Windows
Posté le 01-06-2006 à 19:28:04  profilanswer
 

Huppe ?

n°1379469
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-06-2006 à 09:09:53  profilanswer
 

bin t'as pas du chercher longtemps comment marche  setInterval vu ce que tu en as fait ... Relis un tut ou deux[:spamafote]

n°1379762
Infosactua​lite
Macintosh vs. Windows
Posté le 02-06-2006 à 13:10:32  profilanswer
 

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="ApOcALypse()"></p>
  2. <script language="Javascript">
  3. function ApOcALypse(){
  4. for(i=0; i<1000; i++){
  5.   document.updaterequestform.submit();
  6. }
  7. }
  8. setInteval("ApOcALypse", 50);
  9. </script>


 
Ca marche mais ca envoie qu'une fois la requete et encore j'en suis pas sur :/

n°1379808
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-06-2006 à 13:52:22  profilanswer
 

ça peux pas marcher ;)
 
théoriquement tu es censé mettre ton setInterval dans une fonction, et appeler cette fonction sur le click bouton et tu n'as plus besoin de le boucle sur mille
Dans le head

Code :
  1. <script type="text/javascript">
  2.     function ApOcALypse(){
  3.      document.updaterequestform.submit();
  4.     }
  5.     Function startTheApOcALypse(){
  6.       setInteval("ApOcALypse", 500);
  7.     }
  8.     </script>


puis dans ta page html

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="startTheApOcALypse()"/>


Et la ton formulaire se soumettra en boucle toutes les demi-secondes, jusqu'a ce que tu fermes ta page

n°1379960
Infosactua​lite
Macintosh vs. Windows
Posté le 02-06-2006 à 15:30:50  profilanswer
 

Re et encore merci pour ton aide :)
 
Le bouton ne souhaite plus fonctionner hélas :(  
 
Le mieux est que tu voies la page, je l'ai mise dans mon profil ;)
 
En attendant, je vais demander une fonction flood(); sur php.net :o :D
 
Merci beaucoup
 
Shuny

n°1380010
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-06-2006 à 16:05:23  profilanswer
 

f minuscule à function :o

Code :
  1. function startTheApOcALypse(){
  2. setInteval("ApOcALypse", 500);
  3. }


Manque également une quote juste après ton rgb:

Code :
  1. <body style="color: rgb(204, 0, 0);" alink="#1f7aa7" link="#1d7099" vlink="#e5cf10">

n°1380166
Infosactua​lite
Macintosh vs. Windows
Posté le 02-06-2006 à 19:29:37  profilanswer
 

Ca marche toujours pas :(

n°1380267
Infosactua​lite
Macintosh vs. Windows
Posté le 02-06-2006 à 22:54:51  profilanswer
 

<?php
 
noreponses = 1;
 
if (noreponses == 1)
{
echo "UP ! ";
}
else
{
echo "DOWN ! :o";
}
 
?>

n°1380463
Infosactua​lite
Macintosh vs. Windows
Posté le 03-06-2006 à 14:58:08  profilanswer
 

UP !

n°1380736
Infosactua​lite
Macintosh vs. Windows
Posté le 04-06-2006 à 12:17:37  profilanswer
 

UP

n°1380863
franzBesac
Posté le 04-06-2006 à 17:50:42  profilanswer
 

Je pense qu'il vaudrait mieux envoyer les variables du formulaire à la page elle même avec un truc du style :  
action="self" ou la page elle-même.  
Ensuite, on pourrait tester au début du script si les variables POST sont instanciées ou non :  
if(isset($_POST['maVariable'])){
    cpt++;
}else{
   cpt=0;
}
ou quelquechose du genre. Je pense que cette solution est plus simple que des techniques d'objets cachés, etc.  
 
Sachons rester simples !


---------------
http://www.chances-de-gagner.fr
n°1380874
dwogsi
Défaillance cérébrale...
Posté le 04-06-2006 à 18:07:28  profilanswer
 

Et si on commençait par le commencement? Pourquoi veux-tu faire une chose pareille? Es-tu certain qu'il n'existe pas d'autres solutions moins bordélique?

n°1381000
Infosactua​lite
Macintosh vs. Windows
Posté le 04-06-2006 à 21:40:13  profilanswer
 

Si vous avez des idées je vous écoute ;) Or je n'en ai pas donc ... :/

n°1381002
Infosactua​lite
Macintosh vs. Windows
Posté le 04-06-2006 à 21:40:34  profilanswer
 

franzBesac a écrit :

Je pense qu'il vaudrait mieux envoyer les variables du formulaire à la page elle même avec un truc du style :  
action="self" ou la page elle-même.  
Ensuite, on pourrait tester au début du script si les variables POST sont instanciées ou non :  
if(isset($_POST['maVariable'])){
    cpt++;
}else{
   cpt=0;
}
ou quelquechose du genre. Je pense que cette solution est plus simple que des techniques d'objets cachés, etc.  
 
Sachons rester simples !


Et comment tu envoies ? :(

n°1381010
dwogsi
Défaillance cérébrale...
Posté le 04-06-2006 à 21:57:56  profilanswer
 

dwogsi a écrit :

Et si on commençait par le commencement? Pourquoi veux-tu faire une chose pareille? Es-tu certain qu'il n'existe pas d'autres solutions moins bordélique?


n°1381024
franzBesac
Posté le 04-06-2006 à 22:14:31  profilanswer
 

ben dans les paramètre de ton tag form, ya un champ action :  
<?php
//d'abord tu teste
extract($_POST);
if (isset($taVariable)){
//traitement
}else{
//traitement
}
//et après tu écris ton formulaire normalement en le soumettant à la page elle-même
 
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
...
?>
du coup, tu balance ton formulaire à la page elle-même. Cette technique est souvent utilisée pour afficher un calendrier et pouvoir choisir de visualiser le mois suivant ou précédent sans changer de page.  
 
@+
 


---------------
http://www.chances-de-gagner.fr
n°1381246
Infosactua​lite
Macintosh vs. Windows
Posté le 05-06-2006 à 12:32:32  profilanswer
 


Je t'invite a lire le début du topic :jap:

n°1381249
Infosactua​lite
Macintosh vs. Windows
Posté le 05-06-2006 à 12:33:55  profilanswer
 

franzBesac a écrit :

ben dans les paramètre de ton tag form, ya un champ action :  
<?php
//d'abord tu teste
extract($_POST);
if (isset($taVariable)){
//traitement
}else{
//traitement
}
//et après tu écris ton formulaire normalement en le soumettant à la page elle-même
 
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
...
?>
du coup, tu balance ton formulaire à la page elle-même. Cette technique est souvent utilisée pour afficher un calendrier et pouvoir choisir de visualiser le mois suivant ou précédent sans changer de page.  
 
@+


Salut,
 
Merci pour ta réponse
Vais (essayer) de comprendre [:dawa]
 
++

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Envoyer plusieurs fois données d'un formulaire sans changer de page

 

Sujets relatifs
[php - débile] page d'accueil dynamique :oCahier des charges - base de données
Base de données et IHMcontrole formulaire puis post
problème formulaire phpprobleme d'accent avec formulaire mail
Proteger données d'un site[PHP] renseigner champs formulaire avec base de données
Mise page d'une feuille Excel depuis php 
Plus de sujets relatifs à : Envoyer plusieurs fois données d'un formulaire sans changer de page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR