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

jQuery Discussion :

Envoyer variable POST via Formulaire


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut Envoyer variable POST via Formulaire
    Bonjour

    J'ai un souci avec Jquery,

    J'ai fait un site en 2 langues. le traitement PHP du cookie pour la langue est OK mais il me reste a finaliser avec l'envoi via un formulaire.

    Mon formulaire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script src="js/jquery-1.7.min.js" type="text/javascript">>/script>
    <div id="polyglotLanguageSwitcher">
    	<form action="#">
    		<select id="polyglot-language-options">
    			<option id="en" value="en" selected>English</option>
    			<option id="fr" value="fr">Fran&ccedil;ais</option>
    		</select>
    	</form>
    et le script JQUERY qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $(document).ready(function() {
        $('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    	TRAITEMENT ICI pour envoyer la variable du formulaire "en" ou "fr" en POST, puis reharger la page en cours que l'on peu récupérer avec la variabe _SERVER
        });
    });
    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select id="polyglot-language-options">
    	<option id="en" value="en" selected>English</option>
    	<option id="fr" value="fr">Français</option>
    </select>

    $.post : http://api.jquery.com/jQuery.post/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var jqXHR = $.post( "monFichier.php", { "polyglot" : $( "#polyglot-language-options" ).val() } );
     
    jqXHR.done( function( data, textStatus, jqXHR ){
    	// succès de la transaction, on doit traiter le contenu de data
    	console.log( data, textStatus, jqXHR );
     
    });
     
    jqXHR.fail( function( jqXHR, textStatus, errorThrown ){
    	// échec de la transaction, gérer la catastrophe
    	console.log( jqXHR, textStatus, errorThrown );
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Merci de ta réponse

    J'ai pas trop compris :/

    j'ai cru lire qu'il fallais crée un fichier annexe dans lequel on met le traitement , c'est le fichier qui crée le cookie ou pas pour la langue

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
    $lang = (isset($_POST['lang'])) ? $_POST['lang'] : '';
     
    if($lang == "en" OR $lang == "fr" OR $lang == "es")
        {
        $_POST['lang']=$lang;
        setCookie('lang',$lang,(time()+ 10 * 365 * 24 * 3600));
        }
     echo "langue choisi dans le formulaire : $lang";
     
    $lang = (isset($_COOKIE['lang'])) ? $_COOKIE['lang'] : '';
      echo "pas de POST alors on regarde la session : $lang";
     
     
    $langpardefaut=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    if($lang != "en" AND $lang != "fr" AND $lang != "es")
    {
        {
        if(!isset($_COOKIE["lang"])) //si il n'y a pas de cookie...
        {
            if($langpardefaut == "fr" OR $langpardefaut == "en" OR $langpardefaut == "es") //... on prend la langue du navigateur...
            {
                $lang = $langpardefaut;
            }
            else //... et si la langue n'est pas fr ou en ou es, on met anglais par defaut
            {
                $lang = "en";
            }
        }
        else
        {
            $lang = $_COOKIE["lang"];
     
        }
     
        setCookie('lang', $lang,(time()+ 10 * 365 * 24 * 3600));
    	echo $lang;
     
        }
    }
    ?>

    et la fonction :

    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
    16
    17
    18
    19
    20
    21
    22
    23
      <script type="text/javascript">
            $(document).ready(function() {
                $('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    				effect: 'fade',
                    testMode: true,
                    onChange: function(evt){
                       // alert("The selected language is: "+evt.selectedItem);
     
       type: "POST",
       url: "lang.php", 
       data:+evt.selectedItem, //(Je suis pas sur ?)
       success: function(msg){
          alert(msg); // ICI est la valeur écrite dans le fichier php
       }
     
     
    		    location.reload(); //et la ca me rafraichi la page pour appliquer le choix de la langue
     
                    }
                })
    			});
     
        </script>
    et la le HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id="polyglotLanguageSwitcher" 	>
    <form  id="polyglotLanguageSwitcher" action="http://www.lesite.com/lang.php">
    	<select id="polyglot-language-options">
    		<option id="en" value="en" selected>English</option>
    		<option id="fr" value="fr">Fran&ccedil;ais</option>
    		<option id="de" value="de">Deutsch</option>
    		<option id="it" value="it">Italiano</option>
    		<option id="es" value="es">Espa&ntilde;ol</option>
    	</select>
    </form>

    Mais ca ne fonctionne pas, le cookis nbe se crée pas

    Merci de votre aide

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Je n'ai pas parlé de "cookie", mais uniquement d'une transaction AJAX.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Oui désolé j'avais pas expliquer le but

    Mais je souhaite simplement crée un cookie pour le choix de la langue

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    a la fois, il me semble que le cookie, tu peu le créer coté client, lui donner un numéro et envoyer le numéro au serveur ( ou l'inverse, attendre le numéro du cookie du serveur, et le forcer coté js ? ) ; ce qui éviterais d'avoir à attendre, ou de recharger une page...

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2010, 13h44
  2. Réponses: 2
    Dernier message: 01/11/2009, 19h56
  3. Passage de variables POST sans formulaire
    Par seb92400 dans le forum Langage
    Réponses: 8
    Dernier message: 29/04/2009, 11h04
  4. [XHTML 1.1] Envoyer en POST depuis formulaire mais sans "name"
    Par speedev dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/01/2009, 16h29
  5. Passage de variable GET via formulaire POST ?
    Par tintin72 dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2007, 17h51

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