IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Form.Request et PeriodicalUpdater [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut Form.Request et PeriodicalUpdater
    Bonjour tout le monde,

    Bon alors, j'essaie simplement de transmettre un formulaire à une page php, qui affiche un champ du formulaire. Ensuite j'actualise le contenu d'une div via periodicalupdater.

    L'envoi du formulaire semble fonctionner puisque le OnComplete est éxécuté mais pourtant rien ne s'affiche...

    Mon JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    new Ajax.PeriodicalUpdater(
    	'content',
    	'./sendMessage.php',
    	{
    		insertion: Insertion.Top,
    		frequency: 1
    	}
    	);
     
    function sendMessage()
    {
    	$('message_form').request({
    		onComplete: function(){ $('content').innerHTML += 'OK';},
    		onFailure:  function(){ $('content').innerHTML += 'FAIL';}});
    }
    Mon HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="content"></div>
    <form id="message_form" method="post" action="./sendMessage.php" onsubmit="return false;">
    	<input id="testi" name="testi" type="text"></input>
    	<input type="submit" value="Send" onclick="sendMessage();">
    </form>
    Ma page php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $_POST["testi"];
    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Le PeriodicalUpdater ne soumet pas le formulaire, donc n'envoie pas la valeur de testi qui n'est donc pas récupérée côté PHP...

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    new Ajax.PeriodicalUpdater(
    	'content',
    	'./sendMessage.php',
    	{
                    parameters:$('message_form').serialize(true),
    		insertion: Insertion.Top,
    		frequency: 1
    	}
    	);

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Le PeriodicalUpdater ne soumet pas le formulaire, donc n'envoie pas la valeur de testi qui n'est donc pas récupérée côté PHP...
    J'utilise Form.Request pour envoyer le formulaire, le responseText me renvoie bien la valeur de testi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function sendMessage()
    {
    	$pt('message_form').request({
    		onComplete: function(t){ $pt('content').innerHTML += t.responseText;},
    		onFailure:  function(){ $pt('content').innerHTML += 'FAIL';}});
    }
    Est-ce qu'il n'y aurai pas un problème de concurrence entre le periodicalUpdater et le Form.Request sachant qu'il "pointe" sur la même page?

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    PeriodicalUpdater fait une requete complètement séparée de .request sur ton form, la génération pour le PeriodicalUpdater est donc indépendante de celle du .request ...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Ok, je ne comprends pas pourquoi mon code ne fonctionne pas. Le retour du OnSuccess m'assure bien que le formulaire a été transmis, je ne vois pas pourquoi le periodicalUpdater ne réagit pas...

  6. #6
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Citation Envoyé par Quatre_Couleurs Voir le message
    Ok, je ne comprends pas pourquoi mon code ne fonctionne pas. Le retour du OnSuccess m'assure bien que le formulaire a été transmis, je ne vois pas pourquoi le periodicalUpdater ne réagit pas...
    parce que ce ne sont pas les mêmes requetes !

    chaque fois que ta page php est appelée en AJAX, elle reexecute le code. les 2 requetes ajax que tu lances n'ont rien à voir entre elles.

    Tu executes 2 requetes : une avec le bouton submit qui envoie des données en post à ta page PHP, une autre avec le PeriodicalUpdater qui n'envoie aucune donnée. Comme ta page php ne fait qu'écrire des données postées, elle n'écrit rien !

    Change ta page php pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'j ai recu la valeur '.$_POST["testi"].' pour parametre testi';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Prototype] Form.request() incompatible avec IE ?
    Par Concombre Masqué dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 25/04/2009, 19h43
  2. Input File, Request.form Firefox, Chemin non spécifié
    Par Phenolphtaleine dans le forum ASP
    Réponses: 6
    Dernier message: 13/01/2005, 09h30
  3. request.form & CheckBox
    Par mattmat dans le forum ASP
    Réponses: 6
    Dernier message: 17/11/2004, 17h27
  4. URGENT : Request.Form ne marche pas sous IE6
    Par Laurent Outan dans le forum ASP
    Réponses: 9
    Dernier message: 16/07/2004, 15h25
  5. Réponses: 15
    Dernier message: 21/06/2004, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo