Blog de Jesus Forain Blog de Jesus Forain
Blog personnel de Jesus Forain où les principaux sujets sont l'informatique, la technologie, le spatial mais aussi divers sujets.
Site auto-hébergé sur un mini PC avec une connexion fibre
Rechercher & filtrer
Filtrer par année / mois
Derniers commentaires
Générer un certificat SSL auto-signé valide pour HTTPS
Avatar par défaut
invité (non inscrit)
mercredi 15 octobre 2025 16:56

ça marche pas

Générer un certificat SSL auto-signé valide pour HTTPS
Avatar par défaut
__invité__
lundi 6 octobre 2025 17:12

Merci Jesus Forain !  C'est exactement ce que je cherchais depuis plusieurs jours. Vous avez fait ma semaine.

Pauillac, l'endroit où ont été construits les aéroglisseurs Naviplane N500
Avatar par défaut
__invité__
dimanche 5 octobre 2025 13:40

J'y suis passé il y a peu, ils ont fait passer une piste cyclable sur la rampe depuis ! 

Réparation d'une VMC: condensateur HS
Avatar par défaut
FMichel (non inscrit)
jeudi 25 septembre 2025 18:07

Bonjour, excellent présentation, merci.J'ai rencontré le même soucis sur ma VMC Sauter, la capa 2µF des 2 condos a lâché ainsi que l'un des 2 moteurs. J'ai 2 VMC identiques, l'une tourne en permanence depuis 10 ans alors que celle qui a lâché ne to[...]

Starship flight 10
Avatar de Jesus Forain
Jesus Forain
jeudi 28 août 2025 21:04

Le décollage vu sous tous les angles et en slow motion.   ▶  

Starship flight 10
Avatar de Jesus Forain
Jesus Forain
mercredi 27 août 2025 21:24

Le Starship a finalement décollé ce mercredi 27 août à 1h30 et validé toutes les étapes du vol!Une première pour un Starship V4. Il y a quand-même eu quelques petits problèmes. Un moteur du Booster Super Heavy s'est éteint durant l'[...]

Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
Avatar par défaut
Taiebot (non inscrit)
dimanche 27 juillet 2025 12:01

Impossible de se connecter sans pin J'ai modifié cela  ExecStart=/usr/bin/bt-agent -c NoInputNoOutput en ExecStart=/usr/bin/bt-agent --capability=DisplayOnly -p /home/pi/pins j'ai rajouté un fichier pins dans /home/pi/ avec les deux mots de passe suivants * 1234 * 0000 Sinon le tu[...]

Cloud = obsolescence programmée
Avatar de Jesus Forain
Jesus Forain
dimanche 13 juillet 2025 17:11

Encore une preuve que le cloud c'est de la merde et que tout ce qui dépend du cloud pour fonctionner est à fuir : les objets connectés Wemo de Belkin vont finir à la poubelle simplement parce que les serveurs vont être arrêtés et ainsi rendre inutilisab[...]

Free: le reverse DNS est de nouveau opérationnel
Avatar de Jesus Forain
Jesus Forain
vendredi 4 juillet 2025 18:02

Normalement ça ne devrait pas avoir d'influence, la configuration se fait au niveau des serveurs de Free. La mienne est en mode routeur mais tu peux la passer en mode routeur pour tester au cas où.

Free: le reverse DNS est de nouveau opérationnel
Avatar par défaut
onamloc (non inscrit)
mardi 1 juillet 2025 11:59

Bonjour… Ca fait au moins 12 mois d'aller/retour avec free sur ce sujet… sans success. Est-ce qu'il faut que la freebox soit en mode ‘routeur’ ?  Le mien est en mode ‘bridge’ depuis le début. Merci par avance, Nam.    

Transférer en AJAX un tableau de données entre client et serveur

- 289 vues

Quand on utilise de l'AJAX pour son site web, on a souvent besoin de transférer plusieurs variables entre client et serveur mais le problème est qu'entre les 2, c'est une chaîne de caractères qui cicule. Comment récupérer le résultat d'une fonction et son code retour par exemple?

On peut utiliser du JSON mais le problème c'est que si les fonctions pour le traiter sont diponibles en PHP côté serveur, elles ne le sont pas en Javascript côté client, il faut alors utiliser des bibliothèques Javascript pour le traiter et je voudrais bien me passer de l'utilisation d'une bibliothèque.

L'astuce que j'ai trouvée consiste à utiliser un caractère qui servira de séparateur entre les données. Bien sur, ce caractère ne devra pas être alphanumérique, si le séparateur était la lettre A, il y aurait de fortes chances de la retrouver dans les données à transmettre et ça poserait problème pour savoir si'il s'agit du séparateur ou des données.
On utilisera donc les caractères spéciaux qu'on trouve au début de la table ASCII, ces caractères ont peu de chance de se retrouver dans les données, il faudra là aussi éviter certains caractères comme les retours chariots, si les données sont du texte sur plusieurs lignes, il y en aura forcément.

Dans notre exemple, on va utiliser le caractère ASCII N°29, 0x1D en hexa, séparateur de groupe ou GS.

On a besoin déchanger ces 3 variables:

  • 'Texte de la page'
  • $uneVariable
  • $uneAutreVariable

Échange serveur --> client

Côté serveur (PHP), on concatène les données de façon à avoir une chaîne, \x1D est le code ASCII en hexa du caractère séparateur:

 echo 'Texte de la page'."\x1D".$uneVariable."\x1D".$uneAutreVariable;

Côté client (Javascript), on éclate la chaîne avec split, String.fromCharCode(29) retourne le caractère ASCII à partir de son code décimal:

 var donneesServeur = xhr.responseText.split(String.fromCharCode(29));

La variable serverData est un tableau:
[0] = 'Texte de la page'
[1] = contenu de $uneVariable
[2] = contenu de $uneAutreVariable

Échange client --> serveur

C'est le même principe que précédament mais à l'envers:

Côté client:
On cancatène les données avec le caractère séparateur entre.

 var chainePourLeServeur = 'Texte de la page' + String.fromCharCode(29) + uneVariable+String.fromCharCode(29) + uneAutreVariable;

Côté serveur:
On utilise explode pour éclater la chaîne en tableau.

 $donneesClient = explode("\x1D", $_POST['donnees']);

La variable $donneesClient est un tableau:
[0] = 'Texte de la page'
[1] = contenu de uneVariable
[2] = contenu de uneAutreVariable

On peut aussi transmettre des tableaux à plusieurs dimentions en choisisant plusieurs caractères séparateur.

 

partager sur Facebook
COMMENTAIRES
Envoyer un commentaire
chargement de l'éditeur en cours...
Envoi d'images pour les insérer dans le message
Cliquez sur le bouton "insérer l'image" pour l'ajouter à votre message, le fond de l'image passe en vert indiquant qu'elle est ajoutée. Les images non insérés sont supprimées.

Envoi de fichiers pour les télécharger

Attention! vous n'êtes pas connecté, vous postez en mode invité.