[RESOLU] Compter le nombre de textarea d'afficher.

Eléphant du PHP | 213 Messages

25 nov. 2022, 12:23

Bonjour,

Je dois compter le nombre de textarea qui sont affichées à la fin d'un processus.
Si dessous le code pour afficher les textarea.

Code : Tout sélectionner

function TabInter() { // Set session variables // Construction Balise début $_SESSION['Start']= "[ADC_START]".$_SESSION['Method'].$_SESSION['Service'].$_SESSION['Type'] .$_SESSION['Propri'].$_SESSION['Rdv'] .$_SESSION['Rsdp'].$_SESSION['Regul'].$_SESSION['Comment']; if(isset ($_SESSION['TabInter'])){ $_SESSION['Complement']= "[COMPLEMENT]"; ?> <label> Intervention(s) réalisée(s) en complément du Ticket Principal.</label> <?PHP // Cela génère un entier. // Représentation héx= adécimal:faire un dechex : for($ligne=1;$ligne<sizeof($_SESSION['TabInter']);$ligne++) { $_SESSION['ValueInter']= $_SESSION['TabInter'][$ligne].$_SESSION['FinChaine']; $_SESSION['ValueInter']= str_replace(' ','',$_SESSION['ValueInter']); $_SESSION['ValueInter']= $_SESSION['Start'].$_SESSION['Complement'].$_SESSION['ValueInter']; $_SESSION['ValueMail']= $_SESSION['Start'].$_SESSION['Complement'].$_SESSION['TabInter'][$ligne].$_SESSION['FinChaine']; ?> <table align="center"> <tr align="center"> <td> <form id="form-copier" > <!-- //champ de saisie de texte --> <textarea id="<?php print_r('tx-'.$ligne); ?>" cols="80" rows="3"disabled="disabled"><?php print_r($_SESSION['ValueInter']) ?></textarea> <!-- //Bouton copier --> <input type="button" class="<?php print_r('bt-'.$ligne) ?>" value="Copier la chaîne du Complément / Regul<?php print_r(' -'.$ligne) ?> à coller dans le 'Champs Work Notes*'de ServiceNow." onclick="this.disabled = 'disabled';this.type='checkbox';this.checked='checked'"> </form> </td> </tr> </table> <!-- Script bouton --> <script> (() => { const button = document.querySelector('.bt-<?php print_r($ligne) ?>'); button.addEventListener("click", () => { const elemText = document.getElementById("tx-<?php print_r($ligne); ?>"); // supprimer l'attribut disabled si existe const disabled = elemText.getAttribute("disabled"); elemText.removeAttribute("disabled"); // selectionne le contenu elemText.focus(); elemText.select(); // copy document.execCommand("copy"); // réactive l'attribut disabled si existe disabled && elemText.setAttribute("disabled", disabled); // remise focus sur Btn button.focus(); try { if (document.execCommand('copy')) { var alerte = "Champs Work Notes* " alert('La chaine des Balises a été copié ! \n\r Il suffit de la coller dans le ' + alerte + 'de ServiceNow.'); } } catch (err) { alert('Pas possible de copier.'); } window.getSelection().removeAllRanges(); }); })(); </script> <?PHP } } }// END Function ?>
Je me doute qu'il faudrait que je fasse un compteur avec une boucle for.
Mais je me demande si je ne peux pas aussi récupérer une variable dans chaque textarea ?
Je ne sais pas où commencer.
Image
Merci.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

Avatar du membre
Mammouth du PHP | 1489 Messages

25 nov. 2022, 12:31

return sizeof($_SESSION['TabInter']); //retournera le nombre de textarea

Eléphant du PHP | 213 Messages

25 nov. 2022, 13:50

Bonjour two3d,
Merci pour ta réponse rapide.
J'ai essayé de le mettre dans la boucle for, mais cela bloque le code.
Est-ce qu'il faut que je refasse une autre boucle for, pour ajouter le return ?

Merci.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

Avatar du membre
Mammouth du PHP | 1489 Messages

25 nov. 2022, 15:01

Un return coupe le reste d'une fonction, c'est à mettre à la fin puis de récupérer le retour, via une variable :
$fonction = ma_fonction(); //$fonction aura le contenu de ce qu la fonction "return"

//ou directement :
echo ma_fonction();
//mais comme tu écho déjà du contenu dans ta fonction, ça foutra le bordel je penses

Eléphant du PHP | 213 Messages

25 nov. 2022, 15:08

Bonjour ,

Grace à ton code, j'ai trouvé la solution.
En fait j'ai placé ce code dans la partie de création de mail.

Code : Tout sélectionner

$_SESSION['compteur']= $_SESSION['TabInter']; <?PHP print_r(sizeof($_SESSION['compteur']));?>
Il est vrai que si je m'explique mal dès le début de mon sujet , cela ne vas pas aider.

Merci pour ton aide.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

Avatar du membre
Mammouth du PHP | 1489 Messages

27 nov. 2022, 09:18

Tu peux utiliser count() à la place de sizeof(), c'est un alias plus parlant à mon humble avis ;)

https://www.php.net/manual/fr/function.sizeof.php

Eléphant du PHP | 213 Messages

28 nov. 2022, 16:53

Bonjour two3d,

Effectivement entre temps j'ai découvert count().
Et je l'utilise.
Merci à toi.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.