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

JavaScript Discussion :

Envoi de variable JS en $_post


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut Envoi de variable JS en $_post
    Bonjour,

    J'ai un formulaire de modification de de compte.
    Je fais une validation des champs avec du JS et j'aimerais savoir comment passer une variable JS en $_post[].

    J'ai trouvé beaucoup de chose sur internet mais rien que j'arrive a comprendre. Je précise je suis débutant en JS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form methode="post" action="index" name="modif">
    <input name="nom" value="{{tableau.nom}}">
    <input type="submit" onclick="modification({{tableau}})">
    Je précise que le code ci-dessus est du volt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function modification(tableau)
    {
    if (document.modif.nom != tableau.nom)
    return document.modif.nom;
    }
    après avoir validé les champs, j'aimerai que la page se rafraîchisse en ayant envoyé les différentes modifications en $_POST pour les traiter dans le PHP.

    Cordialement.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Hello,

    Rien de compliqué. Petit exemple rapide :

    Niveau HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form type="POST" action="ton_fichier.php" id="id_du_formulaire">
    <input name="input_name" value="blabla" >
    </form>
    Et niveau JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("id_du_formulaire").submit();
    En le soumettant de cette manière, les variables de ton formulaire seront passées en POST et tu devrais être capable de les récupérer comme tu le souhaites.

    Sauf erreur de ma part, ça devrait fonctionner, à toi de l'adapter

    See yaa

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    tous les champs de mon formulaire n'ont pas besoin d'ètre submit étant donné que je vérifie si il y a eu une modification.

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_du_formulaire").submit();
    je submit tous les champs si je me trompe pas.

    j'ai peut ètre pas été assez clair.

    Dans mon script je créé un tableau avec seulement les champs modifiés pour ne pas refaire une vérification dans le php.

    Comment je passe mon tableau au PHP ?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Re,

    Désolé de mon incompréhension du coup.

    Je ne suis pas expert dans la solution que je vais te proposer donc celle-ci est peut-être fausse, mais renseigne toi du côté d'une requête AJAX : https://ajax.developpez.com/

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Pour envoyé un tableau PHP par l'intermédiaire d'un input tu doit d'abord serialiser ton tableau PHP comme ceci : lors de l'affectation de ta variable : {{tableau.nom}}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $tableau_nom_serialized = htmlentities(serialize($tableau['nom'])); //pour Pug
     
    $pug = new Pug($tableau_nom_serialized);
     
    <input type='hidden' name='nom' value="{{tableau.nom}}" />
     
    //la page qui reçoit le post doit désérialiser les données avant de les manipuler.
    $passed_array = unserialize($_POST['nom'])

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    merci pour vos réponses.

    je suis désolé mais je n'ai pas été clair je pense.

    {{tableau}} est une STDClass
    {{tableau.nom}} est un string

    pour la création du formulaire je n'ai aucun problème, je récupère bien les données.

    a la fin de mon formulaire j'ai cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" onclick="modification(tableau)">
    (ne faites pas attention a l'écriture de l'appel de la fonction JS, je n'ai pas trouvé comment faire encore. (merci le volt...))

    donc je souhaite appeler ma fonction "modification" qui prend en paramètre la STDClass (pour comparer les changements éventuels)

    voici ma fonction JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function modification(tableau)
    {
    	var modif = new Array();
    	if (document.modif.nom != tableau.nom)
    	{
    		modif['nom'] = document.modif.nom;
    	}
    }
    c'est le tableau associatif "modif" que je souhaite passer en POST a mon controlleur (je suis en MVC)

    donc pour le moment le code PHP je n'en ai pas.

    j'espère avoir été clair cette fois et encore désolé pour ma première explication.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/09/2006, 20h12
  2. Envoi de variables/fichiers vers un script PHP
    Par e-king dans le forum Réseau/Web
    Réponses: 9
    Dernier message: 02/04/2006, 19h44
  3. envoi de variable par l'url...
    Par Empty_body dans le forum Langage
    Réponses: 7
    Dernier message: 11/01/2006, 20h08
  4. [PHP-JS] Envoi de variable sans passer par un submit
    Par adilou1981 dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2004, 19h21
  5. Réponses: 5
    Dernier message: 26/04/2004, 19h02

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