Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Tableau javascript vers tableau PHP

Envoyé par : Tulan

Date : 11/05/2005 12:34

Je désire transmettre un tableau Javascript à 2 dimensions vers un script PHP. N'ayant pas trouver de fonction existante pour faire cela, je suis en train de créer une petite fonction qui prend en paramètre un tableau Javascript et le transforme en une chaine de caractère représentant un tableau PHP sérialisé.

Mon problème vient du fait que je ne trouve pas sur le Net de fonctions javascript prédéfinies me permettant de tester le type de contenu d'une variable (int, string, boolean, array ...). Je suis tombé sur une page listant de telles fonctions, mais apparemment Mozilla ne les reconnait pas :(

// convertit un tableau JS en tableau PHP sérialisé
function serializeToPHP(array) {
 var txt;
 // entête du tableau PHP sérialisé
 txt = 'a:' + array.length + ':{';
 // pour toutes les entrées du tableau, key => array[key]
 for (var key in array) {
   // tests type de la clé, int ou string
   if (isString(key))
     txt = txt + 's:' + key.length + '"' + key + '";';
   else if (isInt(key))
     txt = txt + 'i:' + key + ';';
   // tests type valeur
   if (isArray(array[key]))
     txt = txt + serializeToPHP(array[key]);
   else if (isString(array[key]))
     txt = txt + 's:' + array[key].length + '"' + encoreURI(array[key]) + '";';
   else if (isInt(array[key]))
     txt = txt + 'i:' + array[key] + ';';
   else if (isNull(array[key]))
     txt = txt + 'N;';
   else if (isBoolean(array[key])) {
     if (array[key])
       txt = txt + 'b:1;';
     else
       txt = txt + 'b:0;';
   }
 }
 txt = txt + '}';
 return txt;
}

Une piste ou idée?

# Re: Tableau javascript vers tableau PHP

Envoyé par : laurentj

Date : 11/05/2005 15:23

Pour transmettre des données à un serveur web, va voir ici : /wiki/WebServices.

Tu peux notament utiliser le format wddx ou encore le format JSON beaucoup plus performant. Json est du même principe que la serialization en PHP, sauf que c'est un format proche de la notation simplifié de javascript.

Sinon bien sûr, tu as le XML-RPC, SOAP &cie, supporté par Mozilla et PHP.

# Re: Tableau javascript vers tableau PHP

Envoyé par : Tulan

Date : 11/05/2005 16:11

Merci bien pour ces pistes sur WDDX ou JSON, je vais regarder cela.

Sinon j'ai trouvé la fonction Javascript pour tester le type d'une variable: typeof()

# Re: Tableau javascript vers tableau PHP

Envoyé par : Tulan

Date : 12/05/2005 12:06

Voici la fonction finale (je n'ai pas testé avec des objets javascript en données):

// convertit un tableau JS en tableau PHP sérialisé
// type JS accepté: number, string, object, undefined, boolean
function serializeToPHP(array) {
 var tmp = new Array();
 var nb = 0;
 // pour toutes les entrées du tableau, key => array[key]
 for (var key in array) {
   // tests type de la clé, int ou string
   switch (typeof(key)) {
     case 'string':
       tmp.push('s:' + key.length + ':"' + encodeURI(key) + '";');
       break;
     case 'number':
       tmp.push('i:' + key + ';');
       break;
   }
   // tests type valeur
   switch (typeof(array[key])) {
     case 'object':
       tmp.push(serializeToPHP(array[key]));
       break;
     case 'string':
       tmp.push('s:' + array[key].length + ':"' + encodeURI(array[key]) + '";');
       break;
     case 'number':
       tmp.push('i:' + array[key] + ';');
       break;
     case 'undefined':
       tmp.push('N;');
       break;
     case 'boolean':
       if (array[key])
         tmp.push('b:1;');
       else
         tmp.push('b:0;');
       break;
   }
   nb++;
 }
 return 'a:' + nb + ':{' + tmp.join('') + '}';
}

# Re: Tableau javascript vers tableau PHP

Envoyé par : trollchichon

Date : 04/05/2006 15:52

Je reprend ce post pour poser une question stupide...

J'ai plusieur tree, liste et autres textbox. Je voudrai créer une nouvelle entrée Mysql, j'ai donc un bouton de validation qui appelle du JS. Le code Js fait une vérification (que tout soit bien renseigné). Maintenant, je doit envoyé les infos a un script php, je suppose, pour créer l'entrée dans la table. Mais je ne voie pas comment faire. J'ai pensé mettre toute les variables dans un tableau mais je ne suis pas sur que ce soit la meilleur solution. Si c'est la meilleur solution, je ne comprend pas comment faire pour passer du js au php meme avec ce qu'a donner laurent comme infos (je débute en php/js).

# Re: Tableau javascript vers tableau PHP

Envoyé par : trollchichon

Date : 05/05/2006 08:20

Personne n'a d'idée?

# Re: Tableau javascript vers tableau PHP

Envoyé par : chBok

Date : 05/05/2006 10:40

Je n'ai pas relu l'ensemble du topic, mais l'utilisation de XMLHttpRequest ne répond-elle pas à ton besoin ? Cette méthode sert à javascript pour envoyer des données à un script (PHP ou autre) sur un serveur.

# Re: Tableau javascript vers tableau PHP

Envoyé par : trollchichon

Date : 05/05/2006 10:44

ben non car j'aimerai envoyer des tableau d'information. Je viens de finir la création du tableau en Js et maintenant, je vais essayer d'utiliser la fonction au dessus mais ou faut-il l'implementer?

# Re: Tableau javascript vers tableau PHP

Envoyé par : Zéf

Date : 05/05/2006 17:03

trollchichon a écrit:

Je reprend ce post pour poser une question stupide...

un bouton de validation qui appelle du JS. Le code Js fait une vérification (que tout soit bien
renseigné). Maintenant, je doit envoyé les infos a un script php

Salut,

N'utilise pas de Button / Input type="button" ; mais un submit. Tu mets ton JS ds le "onsubmit".

Si le check est ok, tu renvoies true et la soumission se fera vers ton serveur : tu pourras donc traiter tes données côté serveur ; si le check est pas bon, tu retournes false et ton formulaire ne sera pas soumis.

J'espère que j'ai bien compris ce que tu voulais faire
Bon courage
Z.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.