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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  document.my_form.submit()....ne fait rien !!??

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

document.my_form.submit()....ne fait rien !!??

n°995717
kissskoool
Posté le 28-02-2005 à 13:49:06  profilanswer
 

Bonjour,
 
Dans mon code j'ai entre les balises <head> :
 

Code :
  1. <script language="JavaScript">
  2. function ConfirmValide()
  3. {
  4.   var answer = confirm("Etes-vous sur de vouloir supprimer le matériel ?" );
  5.   if(answer)
  6.   {
  7.         document.supp_matos_int.submit();
  8.         alert("Le matériel a été supprimé avec succés !" );
  9.   }
  10. }
  11. </script>


 
et ensuite dans le body de ma page :
 

Code :
  1. <form name="supp_matos_int" method="post">
  2. <td align="center" bgcolor="#ffecec">
  3.     <input type="hidden" name="confirm_supp_int" value="1">
  4.     <input type="hidden" name="suppress_int" value="<?php echo $row_matos_int['id_materiel']?>">
  5.     <input type="button" name="supp_matos_int" onclick="ConfirmValide()" value="Supprimer">
  6.     </td>
  7. </form>


 
et tout en haut de ma page avant le html j'ai :
 

Code :
  1. if (isset($_POST["confirm_supp_int"])) {
  2.         print "ok";
  3.         $my_supmatos_int = mysqli_query($dbprotect, "UPDATE materiel SET suppr='1' WHERE id_materiel='$_POST[suppress_int]'" );
  4.         $matos_suppr_temp = mysqli_query($dbprotect, "SELECT materiel FROM materiel WHERE id_materiel='$_POST[suppress_int]'" );
  5.         $matos_suppr = mysqli_fetch_assoc($matos_suppr_temp);
  6.         $flag_suppr = $matos_suppr['materiel'];
  7. }


 
Et quand je clique sur mon bouton supprimer j'ai bien la boite de dialoque qui s'ouvre avec oui/non...et ensuite la boite alert, mais rien ne se passe a part ca...le reste du php ci-dessus ne fonctionne pas..."ok" ne s'imprime pas...
 
Si qqun a une idee ...Merci


Message édité par kissskoool le 28-02-2005 à 14:17:18
mood
Publicité
Posté le 28-02-2005 à 13:49:06  profilanswer
 

n°995736
esrevni
à contrario
Posté le 28-02-2005 à 14:06:07  profilanswer
 

action="" ?
 
C'est normal ?

n°995756
kissskoool
Posté le 28-02-2005 à 14:14:33  profilanswer
 

avec ou sans action="" ca ne change rien... ;(

n°995757
cerel
Posté le 28-02-2005 à 14:15:35  profilanswer
 

Quelques remarques.
1) Tu devrais afficher le message "Le matériel a été supprimé avec succés !" uniquement quand cela est vrai. C'est a dire a la fin de ta procedure d'effacement, pas au debut de celle-ci... :D
 
2) Que veux-tu faire avec ce code ?

Code :
  1. if(document.supp_matos_int.onsubmit())
  2.      {
  3.          document.supp_matos_int.submit();
  4.      }


J'ai pas bien compris son but... Je veux bien que tu veuilles submit ton form, mais c'est la condition du if...
Soit cette methode est "blocanque", alors ton javascript reste "bloque" ainsi que toute ta page html. Soit cette derniere n'est pas blocange auquel cas elle sera fausse car tu n'as pas "submite" ton form. En effet tu appelle cette fonction via le onclick d'un bouton, et non pas via un "submit"...


Message édité par cerel le 28-02-2005 à 14:18:05
n°995760
kissskoool
Posté le 28-02-2005 à 14:16:31  profilanswer
 

ok bon je reedite le msg et je supprime toutes ces lignes inutiles...

n°995766
FlorentG
Unité de Masse
Posté le 28-02-2005 à 14:18:04  profilanswer
 

Et pas de machins comme ça uniquement en Javascript. Ceux qu'on pas javascript ne verront pas de message de confirmation. Faut prévoir une page de confirmation pour les 9% d'utilisateurs qui ne l'ont pas...
Ensuite le code HTML date d'il y a 10 ans :/

n°995767
kissskoool
Posté le 28-02-2005 à 14:18:34  profilanswer
 

et meme comme ca ca ne marche pas...je ne comprends vraiment pas...surtout que je fais la meme chose sur une autre page et que ca marche tres bien... ;(

n°995773
kissskoool
Posté le 28-02-2005 à 14:20:31  profilanswer
 

en fait c'est pour un intra....alors en fait je sais exactement ce que chaque personne a sur ca machine..et je ferais en sorte qu'elles soient toutes compatibles avec le javascript

n°995788
FlorentG
Unité de Masse
Posté le 28-02-2005 à 14:26:34  profilanswer
 

Pour la boîte de confirmation, met-la plutôt dans le onsubmit :

Code :
  1. <form ... onsubmit="javascript: return confirmeValide()" ...>
  2. ...
  3. </form>


Avec pour la fonction :

Code :
  1. <script type="text/javascript">
  2.   function confirmeValide() {
  3.     return confirm("Etes-vous sur de vouloir supprimer le matériel ?" );
  4.   }
  5. </script>


Message édité par FlorentG le 28-02-2005 à 14:27:04
n°995978
esrevni
à contrario
Posté le 28-02-2005 à 16:21:13  profilanswer
 

ni en connaissant rien en php, mon incompréhension vient peut-être de là, mais comment le navigateur sait quelle action doit provoquer la soumission du formulaire ???
 
(ou bien y a un truc enorme qui m'echappe...)

mood
Publicité
Posté le 28-02-2005 à 16:21:13  profilanswer
 

n°995982
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:24:14  profilanswer
 

Fait comme j'ai dis [:spamafote], bien que ça soit contournable sans JS...

n°995989
esrevni
à contrario
Posté le 28-02-2005 à 16:28:26  profilanswer
 

tu me repondais pas à moi là j'espère, si ?

n°995992
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:29:48  profilanswer
 

Ben si, j'ai corrigé ton script du tout début qu'était pas bon

n°995994
esrevni
à contrario
Posté le 28-02-2005 à 16:31:52  profilanswer
 

oulah, euh, c'est pas moi qui ai posé la question initiale, c'est kisskool, moi je voulais juste savoir :
 

esrevni a écrit :

ni en connaissant rien en php, mon incompréhension vient peut-être de là, mais comment le navigateur sait quelle action doit provoquer la soumission du formulaire ???
 
(ou bien y a un truc enorme qui m'echappe...)


 
 :)


Message édité par esrevni le 28-02-2005 à 16:33:47
n°996000
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:34:05  profilanswer
 

Ah oups :D

n°996001
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:34:20  profilanswer
 

Si seulement on pouvais avoir les avatars, j'me tromperais moins souvent :D

n°996005
kissskoool
Posté le 28-02-2005 à 16:35:11  profilanswer
 

bon je vois que onsubmit retourne une valeur...1 ou 0 j'imagine.
 
Mais je ne comprends pas comment elle est interpretee dans le onsubmit...
 
parce que chez moi du coup qd je fais ce que tu me dis ..je n ai meme plus de boite de dialogue qui s'ouvre...
 
Je precise tout de meme que j'ai remis le input de type button en type submit...c bon??

n°996009
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:36:35  profilanswer
 

Si la fonction appellée dans le onsubmit renvoi false, on n'envoi pas le formulaire

n°996012
kissskoool
Posté le 28-02-2005 à 16:37:47  profilanswer
 

AHHH non....excuse moi...ca marche trop nikel...c'est moi qui avait fait une merde....
 
C'est 10 fois plus efficace...ca marche super bien...
 
Encore une fois FlorentG tu dechires !!! ;)
 
Merci bcp

n°996013
esrevni
à contrario
Posté le 28-02-2005 à 16:37:54  profilanswer
 

FlorentG a écrit :

Si la fonction appellée dans le onsubmit renvoi false, on n'envoi pas le formulaire


 
mais à qui on renvoie le form ? Est-ce automatique en php ?
 

n°996014
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:38:16  profilanswer
 

On la renvoi à la page spécifiée dans l'attribut action

n°996030
kissskoool
Posté le 28-02-2005 à 16:45:11  profilanswer
 

bon je veux pas abuser...mais j'ai encore une petite question.. ;)
 
Comment je peux passer une valeur php a mon javascript..
 
C'est a dire que dans la boite de dialogue j'aimerais mettre le nom du materiel a supprimer.
 
Il est dans le champs caché envoye avec le formulaire...c'est :  
 
<input type="hidden" name="suppress_int" value="<?php echo $row_matos_int['id_materiel']?>">

n°996035
esrevni
à contrario
Posté le 28-02-2005 à 16:46:31  profilanswer
 

ahhhhh, mais ça je le savais. Le problème, c'est où est l'attribut action dans son code ???

n°996040
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:47:50  profilanswer
 

Met un id à ton input, puis via document.getElementById('pouet').value, tu peux récupérer la valeur de l'input

n°996041
esrevni
à contrario
Posté le 28-02-2005 à 16:48:20  profilanswer
 

allez je me lance :
 

Code :
  1. alert("Le matériel <?php echo $row_matos_int['id_materiel']?> a été supprimé avec succés !" );


 
oops, j'avais pas vu qu'il pouvait y avoir plusieurs matos (un tableau en l'occurence, bon, j'arrête de m'occuper de ce qui ne me regarde pas :))


Message édité par esrevni le 28-02-2005 à 16:49:33
n°996043
FlorentG
Unité de Masse
Posté le 28-02-2005 à 16:48:58  profilanswer
 

Ouais, c'est encore mieux :D

n°996049
esrevni
à contrario
Posté le 28-02-2005 à 16:51:24  profilanswer
 

:D ah bah non y a qu'une valeur, j'ai tout bon, mais où est l'attribut action  :cry:

n°996057
kissskoool
Posté le 28-02-2005 à 16:58:01  profilanswer
 

En fait je me suis mal expliqué...
 
voila le bout de code qui genere mon tableau de materiel :
 

Code :
  1. $matos_int = mysqli_query($dbprotect, "SELECT * FROM materiel WHERE int_ext = 0 AND suppr='0' ORDER BY id_materiel ASC" );
  2. while ($row_matos_int = mysqli_fetch_assoc($matos_int))
  3. {
  4. ?>
  5.   <tr>
  6.     <td align="center" bgcolor="#dbeaff"><?php echo stripslashes($row_matos_int['materiel']);?></td>
  7. <td align="center"><?php echo stripslashes($row_matos_int['origine']);?></td>
  8. <td align="center" bgcolor="#dbeaff"><?php echo $row_matos_int['prixunitaire'].' '.'€';?></td>
  9. <td align="center"><?php if($row_matos_int['unites'] == "" ) {echo '1';} else {echo stripslashes($row_matos_int['unites']);}?></td>
  10. <form name="suppint" onsubmit="javascript: return confirmValide()" method="post">
  11. <td align="center" bgcolor="#ffecec">
  12.     <input type="hidden" name="suppress_int" value="<?php echo $row_matos_int['id_materiel']?>">
  13.     <input type="submit" name="supmatos_int" value="S">
  14.     <input type="submit" name="modmatos_int" value="M">
  15.     </td>
  16. </form>
  17. </tr>
  18. <?
  19. }
  20. ?>


 
C'est une boucle while qui fait pleins de formulaires...
 
Est sur chaque ligne du tableau il y a a la fin un bouton supprimer ou modifier...et en champs caché j'ai le nom du materiel qui est envoye...pour que je sache quelle ligne l'utilisateur veux supprimer ou modifier...
 
Par contre je ne sais pas comment passer cette valeur au javascript...

n°996058
KangOl
Profil : pointeur
Posté le 28-02-2005 à 16:58:11  profilanswer
 

si il est pas précisé, c'est la page courante...


---------------
Nos estans firs di nosse pitite patreye...
n°996061
esrevni
à contrario
Posté le 28-02-2005 à 17:01:16  profilanswer
 

KangOl a écrit :

si il est pas précisé, c'est la page courante...


 
ah bah j'ai appris quelque chose ;)
 

n°996063
esrevni
à contrario
Posté le 28-02-2005 à 17:02:36  profilanswer
 

kissskoool a écrit :

En fait je me suis mal expliqué...
 
voila le bout de code qui genere mon tableau de materiel :
 
...
 
C'est une boucle while qui fait pleins de formulaires...
 
Est sur chaque ligne du tableau il y a a la fin un bouton supprimer ou modifier...et en champs caché j'ai le nom du materiel qui est envoye...pour que je sache quelle ligne l'utilisateur veux supprimer ou modifier...
 
Par contre je ne sais pas comment passer cette valeur au javascript...


 
ah bah finalement j'avais qd mm raison, c'est bien un tableau d'élément, c'est donc ta méthode, Florent, qui marche :D
 
Plusieurs formulaires ?? Comment savoir le quel est soumis ?
 
edit : encore une connerie, c'est pas ma journée je crois :D


Message édité par esrevni le 28-02-2005 à 17:06:23
n°996067
kissskoool
Posté le 28-02-2005 à 17:04:33  profilanswer
 

la methode avec getelementbyid???
et bein non je ne vois pas...parce que meme si j'attribue un id a chaque ligne du tableau ....je ne saurez pas lequel appeler...pour recuperer la value...je dis une connerie la??

n°996090
kissskoool
Posté le 28-02-2005 à 17:18:18  profilanswer
 

up please...parce que la je suis passe a cote de la soluce...

n°996098
esrevni
à contrario
Posté le 28-02-2005 à 17:23:35  profilanswer
 

bah, comme t'as plusieurs formulaires mais une seul méthode, je te conseille de surcharger ta méthode :  

Code :
  1. <script language="JavaScript">
  2. function ConfirmValide(matos)
  3. {
  4.   var answer = confirm("Etes-vous sur de vouloir supprimer le matériel " + matos + " ?" );
  5.   if(answer)
  6.   {
  7.         document.supp_matos_int.submit();
  8.         alert("Le matériel " + matos + " a été supprimé avec succés !" );
  9.   }
  10. }
  11. </script>


 
et de faire l'appel comme suit
 

Code :
  1. onsubmit="javascript: return confirmValide(<?php echo $row_matos_int['id_materiel']?> )


 
mais peut être me trompe-je ?


Message édité par esrevni le 28-02-2005 à 18:39:25
n°996115
kissskoool
Posté le 28-02-2005 à 17:32:51  profilanswer
 

ahh ok...donc on oublie l'histoire des id par input...par contre apres dans ma fonction javascript...comment je fais pour utiliser la valeur que j'ai recu...
 
cad dans function confirmvalide(matos) {blabla}
 
comment je recupere matos ...
 

n°996182
esrevni
à contrario
Posté le 28-02-2005 à 18:37:19  profilanswer
 

Comme ça :
 

Code :
  1. alert("Le matériel " + matos + " a été supprimé avec succés !" );

n°996191
FlorentG
Unité de Masse
Posté le 28-02-2005 à 18:49:47  profilanswer
 

esrevni a écrit :

bah, comme t'as plusieurs formulaires mais une seul méthode, je te conseille de surcharger ta méthode :  

Code :
  1. <script language="JavaScript">
  2. function ConfirmValide(matos)
  3. {
  4.   var answer = confirm("Etes-vous sur de vouloir supprimer le matériel " + matos + " ?" );
  5.   if(answer)
  6.   {
  7.         document.supp_matos_int.submit();
  8.         alert("Le matériel " + matos + " a été supprimé avec succés !" );
  9.   }
  10. }
  11. </script>


 
et de faire l'appel comme suit
 

Code :
  1. onsubmit="javascript: return confirmValide(<?php echo $row_matos_int['id_materiel']?> )


 
mais peut être me trompe-je ?


Pas besoin de faire le submit. Suffit de retourner 'true' en cas de réussite.
Aussi, attention à  

<script language="JavaScript">


L'attribut language n'existe plus, faut mettre

<script type="text/javascript">

n°996281
esrevni
à contrario
Posté le 28-02-2005 à 20:13:53  profilanswer
 

FlorentG a écrit :

Pas besoin de faire le submit. Suffit de retourner 'true' en cas de réussite.
Aussi, attention à  

<script language="JavaScript">


L'attribut language n'existe plus, faut mettre

<script type="text/javascript">



 
c'est 2 fois vrai, j'ai pas encore les bon reflexes ;)

n°996507
Luigi
Living's easy with eyes closed
Posté le 28-02-2005 à 22:37:51  profilanswer
 

C'est pas tout à fait le mm pb, mais je profite que vous soyez lancé :D : pourquoi avec
 

Code :
  1. <input type='button' name='action' value='Générer' onClick='checkFormulaire(this.form)'>


 
et
 

Code :
  1. function checkFormulaire(formulaire)
  2. {
  3. ...
  4. formulaire.submit();
  5. }


 
En php, il me dit que $action n'est pas définie, alors qu'avec le mm code et un input='submit' ça marche :??:


Message édité par Luigi le 28-02-2005 à 22:38:03
n°996527
FlorentG
Unité de Masse
Posté le 28-02-2005 à 22:43:21  profilanswer
 

Déjà c'est $_POST['action'] ;)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  document.my_form.submit()....ne fait rien !!??

 

Sujets relatifs
submit qui fasse une requête et une redirection auto[c#][Noob] Un peu de tout sur les Form
document.getElementById("form2").elements[champ] has no properties[javascript] pause,sleep, ou wait ou rien!
Charger des form manuellement ?petite question (form et php)
Access97 - Bouton de commande d'un formulaire invisible si le ss-formPb select / submit
SubmitJe n'y connais rien... Mais j'ai quelques questions!
Plus de sujets relatifs à : document.my_form.submit()....ne fait rien !!??


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