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 :

[AJAX] Envoyer une variable tableau � un script PHP


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut [AJAX] Envoyer une variable tableau � un script PHP
    Bonsoir,

    Je sais comment envoyer une variable dans un script php avec XMLHTTPRequest.
    Par contre je ne sait pas comment envoyer une variable tableau de type "ma_variable[]".

    Pour d�tailler un peu plus:

    1) ce que je sais faire:
    Dans la fonction appelante Javascript vers un fichier PHP, pour envoyer une variable simple, on fait comme �a:
    var data = null;
    var s11=1; //par exemple
    data = "s11="+s11;

    xhr.open("POST","script.php",true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send(data);
    Et du cot� du fichier PHP, on r�ceptionne cette variable s11:
    $s11=$_POST[s11];
    1) ce que je ne sais pas faire:
    comment passer en paramettre une variable de type tableau

    En fait � la finalit�, j'aimerai pouvoir envoy� dans un script php le tableau correspondant � une liste de case � coch�e. Ainsi, dans mon script php, il me sera possible de pouvoir voir quelles sont les cases qui sont coch�es.

    Par ailleurs ,existe-t-il une m�thode simple de transmission des cases � coch�es par l'interm�diaire de XMLHTTPRequest?

    Merci pour votre aide

  2. #2
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    ne compliques-tu pas un pb simple : si elles sont dans un <form>, seules les valeurs des cases coch�es sont envoy�es ...

    A+

  3. #3
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Salut,

    Il te faut s�rialiser ton tableau. par exemple avec Array.join

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    var s = ton_tableau.join(',');
    cot� php tu utilise explode(',', $_REQUEST['...']);

  4. #4
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Je sais bien que je pourrait utiliser une m�thode simple sans Ajax, c'est � dire en effectuant un submit() sur mon formulaire des cases � cocher. Je sais bien le faire m�me. Mais l�, je ne veux pas ex�cuter de submit(), afin rester sur ma page ou j'ai les cases � cocher. Je veux utiliser un type button, qui appele un script javascript, afin d'ex�cuter une proc�dure XMLHTTPRequest.

    J'esp�re qu'on va m'apporter une r�ponse claire. Merci

  5. #5
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Ok, merci Marcha, je vais �tudier ta m�thode.

  6. #6
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    �a y � j'ai enfin trouv� une solution pour traiter mes checkbox. Je vous donne le code que j'ai mis en place apr�s tant de temps! Et oui, quand on connait pas trop, c'est long! Comme �a, j'esp�re que je ferai gagner du temps � des personnes en difficult�s. Je sais que ce Tuto n'est pas le but de mon sujet, mais l'avantage, c'est qu'il montre bien comment envoyer un tableau � un script php, par l'interm�diaire de XMLHTTPRequest.

    MINI TUTO POUR TRAITER DES CASES A COCHER AVEC XMLHTTPRequest

    cot� HTML:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    echo "<input type=\"checkbox\" name=\"selection\" value=\"" . $id_responsable . "\" />";
    (Sachant que $id_responsable et dif�rent pour chaque checkbox)


    cot� 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    var select_string = "";
    var select = new Array();
    select[0] = 0;
    var j = 0;
     
     
    function ma_foncton(f){
     
    var xhr = Xhr()
     
    xhr.onreadystatechange = function(){
     
    if(xhr.readyState == 4 && xhr.status == 200){
     
        select.length = 0;    //initialisation du tableau, suite à l'éxécution du script PHP
        select[0] = 0;
    	j = 0;           //initialisation du compteur j 
     
       }
    }
     
     
          for (var i=0; i<f.selection.length; i++) {        
     
             if (f.selection[i].checked) {          //Pour chacune des cases cochées...
             select[j] = f.selection[i].value;     //...on renseigne notre super tableau qui servira à transmetre les valeur des cases cochées
             j++;
             }
          }
     
    var select_string = select.join(',');         //ICI, il s'agit de la méthode de sérialisation donnée par Marcha ci-dessus dans ce topic du forum
     
     
    var data = null;
    data = "select_string="+select_string;
     
    xhr.open("POST","script.php",true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send(data);

    et enfin, du cot� PHP:
    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
    <?php
    header('Content-type: text/html; charset=iso-8859-1');
     
    $select_string=$_POST[select_string];
     
    $select = explode(',', $select_string);   //restitution du tableau    
     
     
        foreach ($select as $id_responsable) { 
     
    //ici vous parcourez votre tableau "recontitué" et pour chaque élément vous retrouvez votre valeur : ici c'est $id_responsable. En faite ce tableau inclue uniquement les cases qui on été cochées.
     
        }
     
    ?>

    Note : Ce code ne foctionne pas convenablement si vous disposez que d'une seule case � cocher. En effet, j'ai constat� qu'un certain comportement changeait � propos de l'exploitation des cases � cocher, uniquement dans le cas d'une seule et unique case � cocher. Je n'ai pas vraiment compris ce probleme qui est un cas particulier, mais je l'ai plut�t cern� en tatant et j'ai trouv� un arrangement qui r�soud le probleme. Mais bon, dans 95% des cas, votre application aura au moins deux cases � cocher. Si vous voulez le code pour rectifier ce d�tail, vous pouvez me le demander.

    A+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. envoyer une variable vers plusieurs pages php
    Par wanakill dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 2
    Dernier message: 27/04/2009, 10h50
  2. r�cuperer une variable d'un script php vers un javascript
    Par naazih dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 26/05/2008, 09h57
  3. Envoyer une variable d'un script PHP � un autre
    Par Invit� dans le forum Langage
    R�ponses: 6
    Dernier message: 27/06/2007, 09h41
  4. passer une variable javascript � un script php
    Par kawther dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 7
    Dernier message: 30/03/2007, 17h21
  5. R�ponses: 3
    Dernier message: 10/11/2006, 10h33

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