Bonjour,
j'alimente un tableau en PHP que je souhaite utiliser dans mon code jquery.
c'est un tableau à plusieurs dimensions :
mailBody contient une chaîne de caractère avec les bonnes données qui semblent valides, tout du moins d'après https://jsonlint.com/ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var mailBody='<?php echo json_encode($corpsMail, JSON_FORCE_OBJECT) ?>';
voici un bout de cette chaine de caractère :
En revanche, je n'arrive pas à exploité ce résultat dans mon script jquery :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 "trMouv1": { "DATE EMBAUCHE OU RENOUVELLEMENT": "26/06/2019", "DATE DE FIN": "26/09/2019", "MATRICULE RH": "16777214", "TYPOLOGIE DE CONTRAT": "RÉEMBAUCHE CDI", "MOTIF": "SURNU", "NOM": "DUPONT", "PRENOM": "DUPONT", "SITE": "APE AGEN", "SERVICE (À RENSEIGNER SI DR)": "CABINET DIRECTION", "N+1": "DUPONT DUPONT", "CODE EMPLOI": "E005 - C R S I", "COEFF": "500", "QUOTITE": "100" }, "trMouv3": { "DATE EMBAUCHE OU RENOUVELLEMENT": "22/07/2019", "DATE DE FIN": "27/08/2019", "MATRICULE RH": "16777215", "TYPOLOGIE DE CONTRAT": "EMBAUCHE", "MOTIF": "SURNU", "NOM": "MARTIN", "PRENOM": "MARTIN", "SITE": "APE LIMOGES", "SERVICE (À RENSEIGNER SI DR)": "SERVICE SYSTÈME INFORMATIQUE ET TÉLÉPHONIE RÉGIONALE", "N+1": "DUPONT DUPONT", "CODE EMPLOI": "E005 - C R S I", "COEFF": "500", "QUOTITE": "100" }
Mon objectif :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var mailBody='<?php echo json_encode($corpsMail, JSON_FORCE_OBJECT) ?>'; var errorJson ='<?php echo json_last_error()?>'; console.log(errorJson); //retourne 0 console.log(typeof mailBody); //retourne 'string' console.log(mailBody); //retourne chaine de cartère ci-dessus console.log(mailBody[0]); //retourne { console.log(mailBody[0]['trMouv3']); //retourne undefined console.log(mailBody[0]['trMouv3']['NOM']); //génère une erreur 'can not read property 'NOM' of undefined' (fallait s'y attendre) console.log(mailBody['trMouv3']); //retourne undefined console.log(mailBody['trMouv3']['NOM']);//génère une erreur 'can not read property 'NOM' of undefined' (fallait s'y attendre)
J'ai un datatable avec en première colonne un pictogramme (une enveloppe) et je souhaite que lorsque l'utilisateur clique dessus, celà génère un mail avec certaines données de la ligne selectionnée.
C'est données sont identifiées dans ma base et je les stock coté php dans la variable $corpsmail
et sur le clique j'appelle la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 while ($arrayMvt=mysqli_fetch_array($sqlMvt, MYSQLI_ASSOC)){ while ($arrayContenuOnglet=mysqli_fetch_array($sqlContenuOnglet, MYSQLI_ASSOC)){ $champ=$arrayContenuOnglet['nomChamp']; $valchamp=mb_strtoupper($arrayMvt[$champ]); if($arrayContenuOnglet['mail']==1){ $corpsMail["trMouv".$arrayMvt['id']][$arrayContenuOnglet['traduction']]=$valchamp; } } }
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function sendMail(trId){ //alert(trId); var mailBody='<?php echo json_encode($corpsMail, JSON_FORCE_OBJECT) ?>'; var errorJson ='<?php echo json_last_error()?>'; var mailSubject=mailBody[trId]['SITE'] + ' - ' +mailBody[trId]['TYPOLOGIE DE CONTRAT'] + ' - ' + mailBody[trId]['NOM'] + ' '+ mailBody[trId]['PRENOM'] + ' - ' +mailBody[trId]['DATE EMBAUCHE OU RENOUVELLEMENT']; var mailDest='<?=implode(";", $listDiff)?>'; //$listDiff est un tableau php qui contient une liste d'adresse mail, mail dest prend bien la liste des @ séparées par un point virgule //là je souhaiterai incrémenter une variable avec tous les éléments du tableau $corpsMail avec la clé et séparé par un retour à la ligne. //ex: //"DATE EMBAUCHE OU RENOUVELLEMENT": "22/07/2019", //"DATE DE FIN": "27/08/2019", //"MATRICULE RH": "16777215", //"TYPOLOGIE DE CONTRAT": "EMBAUCHE", //"MOTIF": "SURNU", //"NOM": "MARTIN", //"PRENOM": "MARTIN", //"SITE": "APE LIMOGES", //etc... window.location = 'mailto:' + mailDest + '?subject=' + mailSubject + '&body=' + mailBody ; }
Partager