Formulaire problématique
Fermé
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
-
16 mars 2008 à 16:21
Fernando "Malk" - 26 mai 2008 à 23:39
Fernando "Malk" - 26 mai 2008 à 23:39
A voir également:
- Formulaire problématique
- Formulaire de réclamation facebook - Guide
- Formulaire instagram compte suspendu - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Formulaire rempli - Guide
- Problème d'envoi de formulaire ✓ - Forum PHP
5 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 mars 2008 à 17:04
16 mars 2008 à 17:04
Bonsoir,
En effet, je sais faire ne sorte que lorsque l’on clique sur un lien, seule la division que je choisi est rechargée avec une page externe, grâce à de l’ajax.
Si tu sais faire de l'Ajax avec un lien ,fais pareil avec le bouton
<input type"button" .......... onClick="appel_de_la_fonction_ajax();">
En effet, je sais faire ne sorte que lorsque l’on clique sur un lien, seule la division que je choisi est rechargée avec une page externe, grâce à de l’ajax.
Si tu sais faire de l'Ajax avec un lien ,fais pareil avec le bouton
<input type"button" .......... onClick="appel_de_la_fonction_ajax();">
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
1
17 mars 2008 à 17:51
17 mars 2008 à 17:51
PROBLÈME RÉGLÉ !!!!!
J'ai juste enlever le "return false", et ça marche !
Merci beaucoup à Alain_42 qui m'a donné la solution quasi sur un plateau ! :)
Je dirais même plus, merci BEAUCOUP à Alain_42 !!! :)
Et même plus ! :)
Pitouli
PS : on me me demande de récapituler la solution :
J'ai mis ceci :
<input value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false);" type="submit">
Donc j'ai mis la fonction ajax directement dans le bouton submit.
Pitouli
PPS : encore merci Alain_42 !!! :)
J'ai juste enlever le "return false", et ça marche !
Merci beaucoup à Alain_42 qui m'a donné la solution quasi sur un plateau ! :)
Je dirais même plus, merci BEAUCOUP à Alain_42 !!! :)
Et même plus ! :)
Pitouli
PS : on me me demande de récapituler la solution :
J'ai mis ceci :
<input value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false);" type="submit">
Donc j'ai mis la fonction ajax directement dans le bouton submit.
Pitouli
PPS : encore merci Alain_42 !!! :)
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
1
17 mars 2008 à 17:52
17 mars 2008 à 17:52
En fait, c'est pas résolu ! :'(
J'ai été trompé par le fait qu'il y a effectivement mon joli dessin qui tourne indiquant le chargement de la div, avec tous les effets ajax liés.
Mais le problème, c'est que la page elle même se recharge aussi : dans firefox, l'onglet a son petit favicon qui se met à tourner.
Et l'url change aussi : au lieu de rester comme avant, il s'y rajoute index.php?page=lvre_or
Donc que puis je faire ?
Pitouli
J'ai été trompé par le fait qu'il y a effectivement mon joli dessin qui tourne indiquant le chargement de la div, avec tous les effets ajax liés.
Mais le problème, c'est que la page elle même se recharge aussi : dans firefox, l'onglet a son petit favicon qui se met à tourner.
Et l'url change aussi : au lieu de rester comme avant, il s'y rajoute index.php?page=lvre_or
Donc que puis je faire ?
Pitouli
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
17 mars 2008 à 18:44
17 mars 2008 à 18:44
Bonsoir,
une chose me parait étrange:
ton $ devant le nom de la fonction ajaxreplace et le return false
<input value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false); return false;" type="submit">
Donnes nous le code de ta fonction et les deux appels (lien et bouton)
une chose me parait étrange:
ton $ devant le nom de la fonction ajaxreplace et le return false
<input value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false); return false;" type="submit">
Donnes nous le code de ta fonction et les deux appels (lien et bouton)
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
1
17 mars 2008 à 18:56
17 mars 2008 à 18:56
Pour le code de la fonction :
J'utilise deux javascript :
http://c-h-v.zzl.org/scripts/simple.js
ça c'est le framework global
http://c-h-v.zzl.org/scripts/simpleajax.js
et ça c'est celui qui permet d'utiliser la fonction.
par contre, les deux appels, je vois pas de quoi tu parles.
Je te donne le lien du site, comme ça tu pourras regarder le livre d'or.
http://ww12.zzl.org
Merci beaucoup de tes réponses rapides ! :)
Pitouli
J'utilise deux javascript :
http://c-h-v.zzl.org/scripts/simple.js
ça c'est le framework global
http://c-h-v.zzl.org/scripts/simpleajax.js
et ça c'est celui qui permet d'utiliser la fonction.
par contre, les deux appels, je vois pas de quoi tu parles.
Je te donne le lien du site, comme ça tu pourras regarder le livre d'or.
http://ww12.zzl.org
Merci beaucoup de tes réponses rapides ! :)
Pitouli
Hello,
Sorry to post this in english, but I don't speak french, and I have been struggling with those same problems with simple.js. After some debug, I've found the root of it, and how to handle it, so I thought I'd share right at this forum so I could help since I used this topic to find a solution.
The problem is in the server. Script works, but server throws a "Method not allowed" error when you try to request an ajax response using POST. This is a server configuration, it doesn't allow the page to be fetched, so that's why you see the fade out but not the expected fade in. The script does catch the error, but it's status-handling functions, like onError, has no code, so that's why you don't get any errors, it is catched but not handled.
There's two answers to this: either you configure your server to allow those POST requests (haven't tried this one), or you can easily edit the line "this.method="POST";" in simpleajax.js and change to GET. It should work fine after this.
Another source of problems can be this piece of code also in simpleajax.js:
if(_b.responseStatus[0]==200){
_b.onCompletion();
}else{
_b.onError();
}
While I was trying to make it work on my local machine, just by opening the file on Firefox, code was working fine but the "OK status", which by this code should be 200, it was in fact 0. So, changing the "if" statement to check on 0 made my page works. When I uploaded to server, "OK status" was back to 200, so as you can see, this could be a try-and-see thing.
Another problem one could have, but not related to simple.js, is wrong encoding when the new page is fetched, even when main caller HTML specifies it. Just be sure to save the .html in the desired encoding, like UTF-8. Page will be fetched with it's native encoding and not with the encoding of the caller.
Hope this helps. SimpleJS is a good lightweight library, and I was hating to dispose of it just because some simple code was not working. Many hours of reading, trying, browsing forums and sweating, I finally got it to work. It was very confusing how some people could just use the library right away, and some just couldn't. But, fortunately I was able to pinpoint the problem.
Happy coding,
Fernando
Sorry to post this in english, but I don't speak french, and I have been struggling with those same problems with simple.js. After some debug, I've found the root of it, and how to handle it, so I thought I'd share right at this forum so I could help since I used this topic to find a solution.
The problem is in the server. Script works, but server throws a "Method not allowed" error when you try to request an ajax response using POST. This is a server configuration, it doesn't allow the page to be fetched, so that's why you see the fade out but not the expected fade in. The script does catch the error, but it's status-handling functions, like onError, has no code, so that's why you don't get any errors, it is catched but not handled.
There's two answers to this: either you configure your server to allow those POST requests (haven't tried this one), or you can easily edit the line "this.method="POST";" in simpleajax.js and change to GET. It should work fine after this.
Another source of problems can be this piece of code also in simpleajax.js:
if(_b.responseStatus[0]==200){
_b.onCompletion();
}else{
_b.onError();
}
While I was trying to make it work on my local machine, just by opening the file on Firefox, code was working fine but the "OK status", which by this code should be 200, it was in fact 0. So, changing the "if" statement to check on 0 made my page works. When I uploaded to server, "OK status" was back to 200, so as you can see, this could be a try-and-see thing.
Another problem one could have, but not related to simple.js, is wrong encoding when the new page is fetched, even when main caller HTML specifies it. Just be sure to save the .html in the desired encoding, like UTF-8. Page will be fetched with it's native encoding and not with the encoding of the caller.
Hope this helps. SimpleJS is a good lightweight library, and I was hating to dispose of it just because some simple code was not working. Many hours of reading, trying, browsing forums and sweating, I finally got it to work. It was very confusing how some people could just use the library right away, and some just couldn't. But, fortunately I was able to pinpoint the problem.
Happy coding,
Fernando
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
1
>
Fernando "Malk"
21 mai 2008 à 12:50
21 mai 2008 à 12:50
Good morning!
Thank you for your reply!
But I always have a small problem: even after changing the simpleajax.js, the problem remains.
Maybe this is my form is poorly constructed:
<form action="index.php?page=livre_or" method="post" >
<table border = "0" class="centre">
<tr>
<td class="droite"><strong>Pseudo :</strong></td>
<td class="gauche"><input name="pseudo" type="text" maxlength="40" /></td>
</tr>
<tr>
<td class="droite"><strong>Message :</strong></td>
<td class="gauche"><textarea name="message" rows="5" cols="60"></textarea></td>
</tr>
<tr>
<td colspan="2" class="centre"><input type="submit" value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false); return false;" />
Can you tell me what you think please?
Thank you very much!
Pitouli
Sorry for my bad english !
Thank you for your reply!
But I always have a small problem: even after changing the simpleajax.js, the problem remains.
Maybe this is my form is poorly constructed:
<form action="index.php?page=livre_or" method="post" >
<table border = "0" class="centre">
<tr>
<td class="droite"><strong>Pseudo :</strong></td>
<td class="gauche"><input name="pseudo" type="text" maxlength="40" /></td>
</tr>
<tr>
<td class="droite"><strong>Message :</strong></td>
<td class="gauche"><textarea name="message" rows="5" cols="60"></textarea></td>
</tr>
<tr>
<td colspan="2" class="centre"><input type="submit" value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false); return false;" />
Can you tell me what you think please?
Thank you very much!
Pitouli
Sorry for my bad english !
Fernando "Malk"
>
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
26 mai 2008 à 23:39
26 mai 2008 à 23:39
My guess is, what you're trying to do is: send a form input to "livre_or.php", and have it shown by ajax on the same form page.
First problem I see is your form doesn't get sent at all - your onclick function returns false, which makes your submit button do nothing (it needs "return true", the default return value of any function, to work). You have to fix that, then see what could still be going wrong.
First problem I see is your form doesn't get sent at all - your onclick function returns false, which makes your submit button do nothing (it needs "return true", the default return value of any function, to work). You have to fix that, then see what could still be going wrong.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pitouli
Messages postés
59
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
31 janvier 2015
1
20 mars 2008 à 20:46
20 mars 2008 à 20:46
Help ! :'(
Pitouli
Pitouli
16 mars 2008 à 22:04
maintenant, quand on clique sur le bouton, la division se recharge effectivement, mais les données ne sont pas envoyées. Donc le message n'est pas ajouté au livre.
Tu peux m'aider encore un peu s'il te plait ?
Merci !
Pitouli
16 mars 2008 à 22:08
Si oui comment as tu fait pour les arguments de cette fonction ?
17 mars 2008 à 17:35
Voilà exactement ce que j'ai mis pour mon bouton :
<input value="Envoyer" onclick="$ajaxreplace('contenu','pages/livre_or.php', false); return false;" type="submit">
Premier argument : l'id de la div à remplacer. Second : la page à récupérer. Troisième : si il faut s'occuper du cache ou non (comme j'ai pas bien compris ce troisième argument, j'ai essayé avec true puis avec false. Dans les deux cas, ça marche pas).
Voilà, merci pour ton aide ! :)
Pitouli, qui espère que son problème va se régler...