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
Réparation d'un radio réveil impossible à mettre à l'heure et qui affiche 7L7
Avatar de Jesus Forain
Jesus Forain
hier 23:21

Dis-nous si la réparation a fonctionné. Le mien fonctionne toujours depuis que j'ai remplacé le condensateur.

2025, une année noire pour la liberté sur Internet
Avatar de Jesus Forain
Jesus Forain
hier 23:19

Bonjour, Je connais e/os, c'est sans Google mais ça reste encore de l'Android. Ce qui m'intéresserait c'est un smartphone sous un vrai Linux du style Ubuntu Touch où l'on pourrait y faire ce que l'on veut comme sur un ordinateur.Android c'est aussi du Linux mais avec beaucoup tr[...]

2025, une année noire pour la liberté sur Internet
Avatar par défaut
jojo (non inscrit)
samedi 10 janvier 2026 00:00

Bonjour, Un smartphone “dégoogelisé” cela existe et c'est avec cela que je vous écris. /e/os Murena Et cela fonctionne très bien Continuez, j'adore votre site !

Réparation d'un radio réveil impossible à mettre à l'heure et qui affiche 7L7
Avatar par défaut
Jarod (non inscrit)
vendredi 9 janvier 2026 10:07

Salut a tous ,je possède ce radio réveil depuis 1997 ,il  commence à faire les mêmes symptômes que toi et je ne voulais vraiment pas jeter un telle appareil qui tient dans le temps ,et pas envie d acheter un nouveau sachant pertinemment que les appareils d aujou[...]

Le Web est-il en train de mourir?
Avatar de Jesus Forain
Jesus Forain
lundi 29 décembre 2025 22:38

J'avais écrit cet article juste quelques mois avant que Chat GPT ne se fasse connaître et que l'IA déferle sur le web. Et aujourd'hui, le constat est encore pire avec des contenus générés par IA, le “AI slop” et le “brainrot”, litt&eac[...]

Cloud = obsolescence programmée
Avatar par défaut
charlesdicken (non inscrit)
dimanche 7 décembre 2025 05:34

It’s honestly frustrating how many older devices end up useless just because the cloud service behind them disappears. This ES-CAM2A story shows exactly why relying fully on remote servers is risky — the hardware still works, but the company’s cloud doesn’t, so everything bec[...]

Fonctionnement d'un afficheur à palettes que l'on trouve dans les gares ou aéroports
Avatar par défaut
Sophie (non inscrit)
samedi 6 décembre 2025 15:56

 Bonjour, je cherche à acheter un afficheur a palette pour une salle de spectacle. Est-ce que vous savez où on peut en trouver ?  Merci

Cloud = obsolescence programmée
Avatar par défaut
__invité__
mardi 25 novembre 2025 13:10

Quelle aventure technique ! Cette caméra Etiger ES‑CAM2A montre parfaitement les limites des anciens appareils dépendants à 100 % d’un service cloud aujourd’hui disparu. Malgré tous les efforts — analyse réseau, Wireshark, scan des ports, ac[...]

Free: le reverse DNS est de nouveau opérationnel
Avatar par défaut
Newbie (non inscrit)
jeudi 30 octobre 2025 08:42

Hello, J'insiste sur la phrase “Dans le champ “Reverse DNS personnalisé”, mets ton nom de domaine,”. Sur la page free on voit l'exemple de configuration du DNS : "machine IN A 81.56.IP.IP" qui peut porter à confusion. Surtout qu'ils précisent : “&Ea[...]

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

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

- 339 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é.