rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Php/javascript ; submit et close

Posté par karine_b, le dimanche 2 mars 2008 à 05:44:54
Bonjour,

voilà, je suis (encore) bloquée... voilà mon soucis ; ma fenetre principale ouvre une fenetre de saisie. Dans cette fenetre, l'utilisateur entre un nom et clique sur un bouton. Ce bouton envoie une requete SQL au server et, une fois le forfait accompli, elle doit se fermer (c'est là que le bas blesse)

Dans ma fenetre de saisie ;
<form name="formT" method="post" >
<?php echo str_replace("|"," / ",$path_to_find)." / "; ?>
<input name="add_new_cat" type="text" class="Style_Normal" id="add_new_cat" value="" size="60" />
<input type="button" onclick="javascript:document.forms.formT.submit();sleep­(2);self.close()" value="Valider">
</form>

Le submit se fait, mais la fenetre ne se ferme pas.
si j'enlève sleep(2) la fenetre se ferme, mais la requete ne se fait pas...

et si je mets ceci
onclick="javascript:document.forms.formT.submit();alert­('requete ok');self.close()"
le submit se fait, et la fenetre se ferme après que j'ai "OKté " le message...
Y a pas moyen de virer ce "alert" ???

Help !
Configuration: Windows XP
Firefox 2.0.0.12
Répondre à karine_b  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sfel, le dimanche 2 mars 2008 à 19:31:42
bonsoir,

pour le alert a enlevé :


onclick="javascript:document.forms.formT.submit();self.­close()"



L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ...
Répondre à sfel

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eee.eee, le dimanche 2 mars 2008 à 19:36:44
Salut, j'ai une solution qui contourne le problème:

Dans le formulaire, tu met le lien vers la même page avec action="". De plus tu crée un checkbox invisible ( style="display:none" ), et de name="Enregistre".

Au début de la page tu rajoute un code PHP/javascript:

<script LANGUAGE="Javascript">
<?php
if(isset($_POST['Enregistre']))
{
print('self.close();');
}
?>
</script>

Ton ancien code sera alors:
<input type="button" onclick="javascript:document.forms.formT.submit();"­; value="Valider">


En clair il vérifie au début par PHP si la saisie a été enregistrée. Si c'est le cas il quitte la fenêtre. Le problème est qu'il y aura une requête au serveur supplémentaire et inutile. Bon c'est prendre un tank pour écraser une mouche, mais ça marche.
Répondre à eee.eee

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
karine_b, le lundi 3 mars 2008 à 17:35:12
Hello eee.eee

j'ai essayé ta solution ; mais ca ne marche pas (je dois manquer d'expérience...)
Si j'ai bien tout compris, il faudrait faire qqchose comme ;
(ma page se nomme toolbox.php)

$action=$_GET["action"];

<form name="formT" method="post" action="toolbox.php?action=close" >
<input name="add_new_cat" type="text" class="Style_Normal" id="add_new_cat" value="" size="60" />
<input type="button" onClick="javascript:document.forms.formT.submit();"­; value="Valider">
</form>

<?php }
if ($action == "close")
{ ?>
<script LANGUAGE="Javascript">
window.setTimeout("close()", 2000)
</script> <?php
}

Mais ca marche pô... snif snif. Je me suis dit ; "Le monsieur, il a dit POST et non GET..."


donc, j'ai fait ;
<form name="formT" method="post" action="" >
<?php echo str_replace("|"," / ",$path_to_find)." / "; ?>
<input name="add_new_cat" type="text" class="Style_Normal" id="add_new_cat" value="" size="60" />
<input type="button" onClick="javascript:document.forms.formT.submit();"­; value="Valider">
<input type="checkbox" value="Valider" style="display:none" name="Enregistre">
</form>

en rajoutant ;
<body topmargin="0" leftmargin="0">
<script LANGUAGE="Javascript">
<?php
if(isset($_POST['Enregistre']))
{
print('self.close();');
}
?>
</script>

Je teste... et ... raté !! (mais de peu...)
en effet,
La fenetre ne se ferme pas, et le code généré est ;
<script LANGUAGE="Javascript">

</script>

Apparemment, il ne passe pas dans la condition ; if(isset($_POST['Enregistre']))

to be continued...
Répondre à karine_b

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
karine_b, le lundi 3 mars 2008 à 18:06:15
yeah !! j'ai trouvé l'erreur ;

<?php
if(isset($_POST['add_new_cat']))
{
print('self.close();');
}
?>


<form name="formT" method="post" action="" >
<?php echo str_replace("|"," / ",$path_to_find)." / "; ?>
<input name="add_new_cat" type="text" class="Style_Normal" id="add_new_cat" value="" size="60" />
<input type="button" onClick="javascript:document.forms.formT.submit();"­; value="Valider">
<input name="Enregistre" type="checkbox" value="Valider" style="display:none" id="Enregistre">
</form>

ca marche enfin ! Merci à vous !!

...ce qui m'amène à la question à 100.000$ ; voilà la situation...
ma fenetre principale liste le contenu d'une base de données (des catégories de bookmarks).
pour ajouter une catégorie, je clique sur un bouton de la fenetre principale, ce qui ouvre une fenetre de saisie.
Dans cette fenetre de saisie, je rentre le nom de la catégorie. Une fois validée, elle execute sa requete et se ferme toute seule.

La question à 100.000$ est ; comment rafraichir ma fenetre principale après que la requete de la fenetre de saisie ait été envoyée...

Alors là, si vous trouvez, chapeau bas messieurs !
@+ bisous !
Répondre à karine_b

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Posotaz, le lundi 3 mars 2008 à 00:06:55
Hello,

A en juger du comportement du script, tout porte à croire que la méthode sleep soit responsable de la non exécution de l'instruction suivante, à savoir la fermeture de la fenêtre de saisie.

D'où provient cette méthode sleep ? (Elle n'existe pas en standard donc je suppose que tu as dû la recréer). La console d'erreur JavaScript indique-t-elle une erreur ?

Sinon je te conseille cette lecture pour le sleep http://www.xorax.info/blog/programmation/103-sleep-wait-paus­e-javascript.html

Très simplement, il suffirait de lancer l'instruction "close()" au travers du setTimeout (les unités sont mesurées en millisecondes, donc 2000 pour 2 secondes).
Répondre à Posotaz

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
karine_b, le lundi 3 mars 2008 à 15:51:57
Merci pour vos réponses !

Alors, j'ai commencé par essayer un Setimeout (proposé par Posotaz) ;
voilà le code (la page est nommée toolbox.php) ;

<form name="formT" method="post" action="toolbox.php?action=close" >
<?php echo str_replace("|"," / ",$path_to_find)." / "; ?>
<input name="add_new_cat" type="text" class="Style_Normal" id="add_new_cat" value="" size="60" />
<input type="button" onClick="javascript:document.forms.formT.submit();"­; value="Valider">
</form>

<?php }
if ($action == "close")
{ ?>
<script LANGUAGE="Javascript">
window.setTimeout("close()", 2000)
</script> <?php
}

==> la fenetre se ferme bien au bout de 2secondes. Par contre, la requête n'a pas été envoyée... snif snif
Répondre à karine_b

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 eee.eee, le mardi 4 mars 2008 à 00:28:07
Pour mettre à jour automatiquement ta fenêtre principale, la solution: xmlhttprequest(). Voici des pages ou on la décrit (Et là je ferai bien de faire la même chose que toi ^^ et de les lire aussi)

http://www.toutjavascript.com/savoir/xmlhttprequest.php3
http://www.xul.fr/xml-ajax.html
Répondre à eee.eee
Discussions pertinentes trouvées dans le forum
14/03 16h09[php et ou javascript] submit()3
01/07 15h22Htmp php javascript onchange1
25/06 18h33Php / javascript ou autre?12
23/06 22h06Php + javascript6
Plus de discussions sur « Php/javascript ; submit et close »
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger Firstpage 2006Firstpage - First Page 2006 est un éditeur html gratuit et excellent. Il permet de travailler un code HTML en couleur, ainsi que de...Catégorie: Editeurs HTML
Licence: Freeware/gratuit
Télécharger IE7 open last closed tab 3.5.0.0IE7 open last closed tab - Quoi de plus énervant lorsqu'on utilise un navigateur que de fermer accidentellement un onglet ! Mozilla Firefox et Opera...Catégorie: Navigateurs
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Php/javascript ; submit et close »