8768 sujets

Développement web côté serveur, CMS

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.

 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.
upload/1669371742-84358-compteur.png
Merci.
Bonjour,

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

$_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.
Meilleure solution
Salut wisefun77,

Je ne suis pas certain d'avoir compris ta question.
Je vois que tu génère du JS avec du PHP. Est-ce que tu souhaites connaître ce nombre pour ton code PHP ou bien ton JS ?

Si c'est pour ton PHP, je suis désolé ça fait trop longtemps que j'en ai fait pour espérer te fournir un début solution correcte Smiley sweatdrop .

En revanche, si tu en as besoin pour ton JS, tu peux faire un simple:

const textareaCount = document.querySelectorAll("textarea").length;

J'espère que cela t'aura été utile.
Bonjour kolinhar,

Merci très sincèrement pour ta réponse.
Je garde ton code, dans mon fichier mémo code js, si un jour j'en ai besoin.

Comme tu t'y connais en JS, je vais poster une nouvelle question.

Merci à toi.