Tableau double dimension PHP => JavaScript / jQuery

Résolu/Fermé
Bengt - Modifié par Bengt le 13/11/2013 à 15:44
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 14 nov. 2013 à 15:13
Bonjour (ou rebonjour ^^),

Je reposte un sujet, bien que j'aurais pu le faire directement dans l'autre, c'est plus clair comme ça cependant.

J'ai donc un tableau à deux dimensions en PHP et je voudrais pouvoir l'utiliser en jQuery pour un système d'autocomplétion.

Il me faut donc au final une liste en JS.
Dans cette liste je n'ai besoin que des données de la deuxième colonne du tableau, la première m'est inutile.

Voilà un print_r du tableau :

Array ( [0] => Array ( [NUMERO] => 142 ) [1] => Array ( [NUMERO] => 143 ) ) 

Mais je ne sais pas comment m'y prendre pour passer d'un tableau en PHP vers JS (encore moins utiliser une seule colonne d'un tableau 2D).

Je ne trouve des informations que pour des tableau 1D.

Merci de votre aide !
A voir également:

2 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
13 nov. 2013 à 15:50
Salut,

il y a plusieurs manières de faire.

tu peux formater en PHP ton tableau comme tu désires l'obtenir dans ton JS, puis faire un echo dans ton code js avec la fonction json_encode().

Je ne sais pas si c'est une "bonne" pratique, mais il me semble que j'ai fait comme ça pas mal de fois, et ça fonctionne bien.

par exemple, dans ton code JS :

var mon_tab = <?php echo json_encode($mon_tab) ?>;

1
Dans ce cas, il faudrait que je formate en PHP mon tableau 2D vers un tableau 1D pour que ce soit plus clair, mais est-ce possible ?

Parceque là, un alert de la variable passé sous json_encode renvoit :

[object Object],[object Object]
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
13 nov. 2013 à 16:21
Non, tu peux garder autant de dimension que tu veux, mais tu ne peux pas afficher un structure via un alert, tu peux éventuellement la parcourir via un console.log()
0
Ok ok !

Avec un coup de json_encode pour pouvoir l'utiliser dans l'autocomplete de jQuery UI, je me retrouve par exemple avec :

[{"NUMERO":"142"},{"NUMERO":"143"}] 

Cependant ça ne fonctionne pas, je n'ai rien dans le champ quand je tente l'autocomplétion ?

Voilà le code JS :

var liste_Delib = (<?php echo json_encode($liste_Numero_Delib); ?>);

$('#search_Delib').autocomplete({
source : liste_Delib
})

Et pourtant mon tableau est validé sur http://jsonlint.com/
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
14 nov. 2013 à 10:25
Alors, je pense que tu devrais oublier les 2 dimensions, garde juste la valeur numérique qui t'intéresse pour obtenir un json de la forme :

["142", "143"]
0
C'est ce que je voudrais faire, mais je ne vois pas comment m'y prendre ?
Est-ce-que je peux changer la nature/les données d'un tableau en JS/jQuery et comment ? (ou alors en PHP ?)

Par exemple supprimer une colonne ?
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
14 nov. 2013 à 11:05
C'est possible en php, mais, comment construis-tu ton tableau côté PHP ? Et à quoi ressemble-t-il ?

print_r($tableau);
0