Exploiter le contenu d'un tableau javascript en php

Fermé
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - 30 janv. 2017 à 13:57
 Utilisateur anonyme - 30 janv. 2017 à 18:55
Bonjour,
J'ai un tableau javascript, je veux exploiter son contenu pour un traitement php,
donc je crois que je dois créer un tableau php et le remplir par les mêmes données du tableau javascript,
j'ai essayé de procéder comme suit :
En javascript, j'ai récupéré la taille du tableau :

var nbClient=tab_Clients.length;
for (var i = 0; i < nbClient ; i++)
{
var_javascript=tab_Clients[i];
}

Puis, je l'ai affecté à une variable php

<?php
$nbClientp="<script> document.write(nbClient); </script>";
$var_js2php="<script> document.write(var_javascript); </script>";
$distance_Client=array();
for ($tc=0; $tc < $nbClientp; $tc++)
{
array_push($distance_Client, $var_js2php);
}
var_dump($distance_Client);

le var_dump ici m'affiche un tableau vide , SVP comment je peux affecter le contenu du tableau javascript dans mon tableau php ?
Merci d'avance

1 réponse

Utilisateur anonyme
30 janv. 2017 à 15:22
Sachant que le PHP est un langage serveur donc exécuter pendant le chargement d'une page, et le Js un langage client, donc après le chargement de la page, le seul moyen de passer des données du client au serveur est en utilisant l'AJAX.

Mais après les données du tableau se trouve comment? Enfin elles sont dans un fichier HTML? Le JS modifie ces valeurs?
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
30 janv. 2017 à 16:51
Bonjour,
Les données du tableau sont extraites à partir de ma base de données, puis j'ai fait une fonction javascript qui calcule la distance entre ma position gps et la postion de chaque client, maintenant je veux afficher ce résultat dans mon tableau php. voici comment j'ai fait

<?php
$tab_Clients=array();
$sql = "select * from CustomerForTest";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) )
{
$ligne=$row[0]." | ".$row[1]." | ".$row[2]." | ".$row[3];
array_push($tab_Clients, $ligne);
}
?>

puis en javascript :

<script type="text/javascript">
var tab_Clients=<?php echo json_encode($tab_Clients); ?> ;
var nbClient=tab_Clients.length;
for (var i = 0; i < nbClient ; i++)
{
var splits= (tab_Clients[i]).split(" | ",4);
var dist=getDistanceFromLatLonInKm(ltt,lgt,splits[2],splits[3]).toFixed(3);
tab_distance[i]=dist;
var_javascript=tab_Clients[i];
}

la fonction getDistanceFromLatLonInKm calcule la distance qui me sépare de chaque client, puis je stocke le résultat dans un tableau javascript, maintenant je veux afficher ça en php . Mon problème c'est comment afficher du javascript en php
0
Le plus simple alors est de n'utiliser que PHP puisque c'est PHP qui est en contact avec la base de données.
Pour obtenir les informations de l'utilisateur un formulaire HTML qui renvoie à PHP.
C'est un peu plus long en temps de traitement que d'avoir préparé les variables avant en utilisant AJAX qui évites de faire 2 appels au serveur distincts.
Sinon il y a AJAX mais comme dit précédemment impossible de mélanger PHP et JavaScript qui fonctionne à 2 moments différents(avant le chargement ert après le chargement). Ce que fait A.J.A.X. c'est de créer des méta-données côté client ou serveur pour pouvoir les transmettre de l'un à l'autre comme l'indique le premier 'A' de A.J.A.X.. (pour Asynchrone).

Sinon vous pouvez faire l'inverse: utiliser les données dans la page écrite par PHP(donc le contenu HTML en fait) mais c'est très peu sécurisé et risque facile d'erreur car on n'utilise aucune variable mais seulement les valeurs textes de HTML à repérer par des identifiants(ce qui complique aussi le programme puisque on doit obtenir 2 fois les mêmes valeurs de variables).
0
Utilisateur anonyme
30 janv. 2017 à 18:55
Après tout dépend de la fonction getDistanceFromLatLonInKm, mais si elle ne fait que du calcule et n'utilise rien de spécifique au JS, c'est de convertir cette fonction en PHP, et juste de charger la page, récupérer la géolocalisation en JS puis la poster à l'aide d'un formulaire vers le script PHP qui vas tout gérer puis afficher.
0