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 :

php (array) -> jquery -> ajax


Sujet :

jQuery

  1. #1
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut php (array) -> jquery -> ajax
    Bonjour,

    j'ai fait plusieurs recherches et trouvé plusieurs exemples.... mais rien ne résous mon cas:

    côté php j'ai un tableau : que je place dans un attribut data d'une balise.

    je récupère via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var data = $(this).attr('data');
     
    		$.ajax({
    			type: "GET",
    			url: "supp.php",
    			data: "i="+data,
    			cache: false,
    			success: function(){
     
    			}
    		});
    je traite dans un fichier traitement en php (supp.php) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $t=array();
    $t = $_GET['i'];

    J'ai essayé avec serialize : côté php, je sérialise le tableau, je récupère en JS comme dans l'exemple ci-dessu, et je unserialize dans le traitement.

    J'ai essayé avec json_encode: côté php, je json le tableau, je récupère en JS comme dans l'exemple ci-dessus, et je dé-json dans le traitement.

    rien réussi... un souci dans mon ajax ?

    pour info: le script supp.php fonctionne bien.


  2. #2
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    pour être plus concis...

    je souhaite récupérer en Jquery un tableau php présent dans la page.

    envoyer ce tableau via ajax.


    je sais qu'on ne peut envoyer directement un array... mais mes serialize ou json ne fonctionne pas...

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    voir la réponse faite dans cette discussion http://www.developpez.net/forums/d15...e/#post8363246.

  4. #4
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Je vais lire ça merci !

  5. #5
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Ajax ne converse que sous la forme de string ... il n'est pas possible d'envoyer et récupérer directement des objets ...

    json_decode
    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 !

  6. #6
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Hello,

    merci pour vos réponses... mais je ne connais pas assez bien...

    dans ma page j'en-Jsonne mon array -> il devient donc string ! ... ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $t_id = array('1','3','5','7');
    $t = json_encode($t_id);
    ?>
    mon array devenu string json est en data.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a type="button" class="btn btn-default sup" href="#" data="'.$t.'"> [...]
    Mon JS/AJAX, je récupère la variable string et la passe en get.
    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
     
    $(document).ready(function(){
    	$('.sup').click(function(){
    		var data = $(this).attr('data');
    		$.ajax({
    			type: "get",
    			url: "c.php",
    			data: 'i='+data,
    			dataType: 'json',
    			cache: false,
    			success: function(){
    				alert("ok");
    			}
    		});
    	});
    });
    en c.php, en théorie, je decode mon json pour retrouver mon tableau...

    Est-ce que déjà à ce stade vous voyez qq chose de non conventionnel ?

    Merci

  7. #7
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type: "get",
    data: 'i='+data,
    =>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $receptionAjax= json_decode($_GET['i']);
    var_dump( $receptionAjax );
    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 !

  8. #8
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    hello

    merci pour ta réponse... je me suis aperçu que la manière de remplir un tableau influait.

    si je crée un tableau php comme cela : c'est ok.

    si je crée un tableau php comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $tab=array();
     
    foreach($tableau as $t)
    {
    $tab[] = $t;
    }
    cela ne semble pas fonctionner...

  9. #9
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 647
    Par défaut
    tu obtiens quoi tu regardes la réponse de la requête avec le moniteur réseau ?

  10. #10
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Je n'ai que le début de la construction du json ou du serialize, ça dépend de mes tests... du style a{o: et puis plus rien

  11. #11
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $tab = array(1,2,3,4);
    echo json_encode($tab);
    retourne
    [1,2,3,4]
    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 !

  12. #12
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    tout à fait...

    Mais apparemment pas si tu crées ton tableau de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $tab=array();
     
    foreach($tableau as $t) // $tableau contenant une série de numéro
    {
       $tab[] = $t;
    }
    ou alors j'ai vraiment trop fumé.....

  13. #13
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $tab=array();
     
    $tableau=array(1,2,3,4,5,6,7);
     
    foreach($tableau as $t) // $tableau contenant une série de numéro
    {
       $tab[] = $t;
    }
     
    echo json_encode($tab);
    donne bien le résultat escompté ...
    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 !

  14. #14
    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'aime pas intervenir sur du PHP (je le connais peu et le pratique encore moins), mais il y a des choses bizarres dans echo '<a type="button" class="btn btn-default sup" href="#" data="'.$t.'">.

    Je vois trois problèmes dans cette ligne de code :
    1. Un type button pour un tag A !
    2. Un attribut HTML5 data-* avec * inconnu.
    3. Comme le JSON utilise exclusivement des ", le contenu de l'attribut data-* doit être placé entre ' pour éviter les conflits.


    Exemple (il suffit de copier-coller pour tester) :

    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
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1.0">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
      <style>
     
      </style>
    </head>
    <body>
     
      <?php
        $t_id = array('1','3','5','7');
        $t = json_encode($t_id);
      ?>
     
      <a class="btn btn-default sup" href="#" data-id='<?php echo $t ?>'>Lien vers peu importe</a>
     
      <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
      <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
      <script>
        "use strict";
     
        $( function(){ // forme abrégée de $(document).ready( function( ){
     
        });
     
        $( window ).load( function(){
     
          console.log( $( ".btn" ).data( "id" ) );
     
        });
      </script>
    </body>
    </html>

    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.)

Discussions similaires

  1. Array PHP pour utilisation jquery
    Par Mika2008 dans le forum jQuery
    Réponses: 5
    Dernier message: 04/03/2013, 13h24
  2. [AJAX] - Ajax - PHP/MYSQL - Accordéon Jquery
    Par SpiderNéo dans le forum AJAX
    Réponses: 0
    Dernier message: 27/12/2009, 11h31
  3. Cherche Formulaire php 4 / Ext / jQuery
    Par ebadmail dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2007, 15h11
  4. [Tableaux] PHP, Array et réaffichage
    Par kagura dans le forum Langage
    Réponses: 11
    Dernier message: 29/08/2006, 14h07

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