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 :

Passage paramètres via post ineffectif


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut Passage paramètres via post ineffectif
    Bonjour à tous,

    j'ai un petit souci avec un appel ajax, je n'arrive pas à récupérer les paramètres passés au script php appelé. Soit le code suivant:

    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
    $(document).ready(function(){
        params=['test1','test2','test3','test4','test5','test6'];
        var params_json=JSON.stringify(chunk(params,3)); // launch ajax call
        $("#testtest").html(params_json);
        $.ajax({
            url: 'call.php',
            //data: {par1: 'val1',par2: 'val2'},
            data: params_json,
            datatype: 'json',
            method: 'post',
            success: function(json){
                data_returned=jQuery.parseJSON(json);
                //data_returned=json;
                console.log(data_returned);
            }
        });
    function  chunk(arr,len){
      var chunks=[],
      i=0,
      n=arr.length;
      while (i<n){
        chunks.push(arr.slice(i,i+=length));
      }
      return chunks;
    }
    la partie PHP est simple en soit:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $params=$_POST;
    echo json_encode($params);
    ?>

    le problème semble se situer ligne 10 : lorsque je la commente et que je décommente la ligne 9, l'appel ajax me renvoie la bonne valeur.

    en fait ce que j'envoie comme paramètre à call.php c'est : [["test1","test2","test3"],["test4","test5","test6"]]

    pourquoi ne puis-je pas passer le paramètre dans ce format là ?

    d'avance merci!

  2. #2
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    Bonjour à tous,

    j'ai pu contourner le problème de la façon suivante:

    1/ Je passe le tableau complet concaténé en paramètre...

    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
    $(document).ready(function(){
        // splice array
        params=['test1','test2','test3','test4','test5','test6',];
        parms=params.slice(0);
        // get number of params
        var joinParams=parms.join(',');
        console.log(joinParams);
        $.ajax({
            url: 'call.php',
            //cache: false,
            data: {data: joinParams},
            datatype: 'json',
            method: 'POST',
            success: function(json){
                data_returned=jQuery.parseJSON(json);
                $.each(data_returned,function(key,value){
                    $("#row").append('<div class="columns">' + value + '<a href="javascript: openPopup(\'editor.php?params=' + key + '\');">open me</a></div>');
                });
            }
        });
    });
    et je chunke les paramètres dans le script php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $params=$_POST['data'];
    $expl=explode(',',$params);
    $chunked=array_chunk($expl,9);
    foreach ($chunked as $chunk){
        $key=implode(',',$chunk);
        $ret[$key]='dummy';
    }
    echo json_encode($ret);

    ca fonctionne mais ca ne me parait pas très propre, qu'en pensez-vous ? le fait de séparer par des "," me dérange car que se passe-t-il si un des paramètres comporte une ","?

    la question est également : est-ce que j'ai bien expliqué le problème?

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben en php ... pour faire un json encode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $params=$_POST;
    echo json_encode($params);
    encore faut il que le paramètre soit un json ...
    en POST tu ne reçois que du string ... (tout comme en get d'ailleurs)

    Tu dois d'abord récupérer le bon index de post et pour ce faire passer une structure dasn ton ajax

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
     data: {prama:params_json},

    Ce qui te permettra de recupérer un string json dans $_POST['param']

    Et du coup en faire un json decode ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recupJSONphp= json_decode($_POST['param']);
    et éventeuellement le retransformer en string json pour la réponses AJAX
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo  json_encode( $recupJSONphp);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. [Integration] Passage paramètres via un lien ou un bouton
    Par mLk92 dans le forum Spring
    Réponses: 0
    Dernier message: 09/10/2012, 13h55
  2. Passage paramètre via l'url
    Par laure07 dans le forum Langage
    Réponses: 12
    Dernier message: 25/05/2012, 22h55
  3. passage de paramètre en post
    Par asetti dans le forum ASP
    Réponses: 6
    Dernier message: 07/11/2005, 21h10
  4. Pb passage de paramétres via l'url
    Par chpog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/09/2005, 10h34
  5. Passage de paramètres via l'URL
    Par carolinebelle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/08/2005, 16h16

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