[RESOLU] ID d'une Textaera dans un IF

Eléphant du PHP | 213 Messages

16 mai 2022, 16:34

Bonjour,
J'aimerais modifier mon code.

Code : Tout sélectionner

<br/><br/> Poste(s) de travail <br/><br/> Veuillez selectionner l'intervention effectuée * <br/> <form method="post" action="sdp-autre-intervention.php" > <select name="demg" required/> <option value="">Selectionner...</option> <option value="DEM_PDT" id="DEM">Déménagement</option> <option value="PRT" id="PRT">Prêt</option> <option value="NDO" id="NDO">Nouvelle dotation sans reprise</option> <option value="REP" id="REP">Reprise sans nouvelle dotation</option> <option value="REN" id="REN">Nouvelle dotation + reprise(renouvelement)</option> </select> <br/><br/> Veuillez selectionner le type de poste * <br/> <select name="prt" required/> <option value="">Selectionner...</option> <option value="PCF"" >Poste fixe</option> <option value="LAP">Laptop + avec ou sans station d'accueil</option> <option value="SCI" >Poste scientifique</option> </select> <br/><br/> <?PHP if(isset(id="REN")){ } ?> <center>Asset or New Asset* &emsp;&emsp; &emsp;Ancien Asset </center> <input type="hidden" name="balise" value=""/> <input type="texte" name="asset" id="cible" tabindex="20" required/> <input type="texte" name="Ancien asset" id="cible" tabindex="20" required/> <br/> <input type="radio" id="XXX" onchange="document.getElementById('cible').value=id" /> <label for="radio_1">Hostname inconnu ou matériel non sérialisé</label> <br/> <br/><br/> Durée de l'opération en Minutes * <br/> <input type="hidden" name="balise" value="" /> <input type="number" name="time" tabindex="20" required /> <br/><br/> <input type="submit" value="Suivant"/> </form>
Si l'user sélectionne la ligne

Code : Tout sélectionner

<option value="REN" id="REN">Nouvelle dotation + reprise(renouvelement)</option>
Alors cela active les deux textaera Nouvel ASSET et Ancien ASSET.
/////////////////
Si l'user sélectionne la ligne

Code : Tout sélectionner

<option value="REP" id="REP">Reprise sans nouvelle dotation</option>
Cela désactive la textaera Nouvel ASSET et active la textaera Ancien ASSET.

Sinon
la textaera est toujours grisée. >> ça je sais faire avec "disabled".

Ce que je n'arrive pas à faire c'est de récupérer l'id des textaera dans un IF.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

Avatar du membre
Mammouth du PHP | 1564 Messages

16 mai 2022, 17:00

Il ny a pas de textarea dans ton code.

Mammouth du PHP | 2703 Messages

16 mai 2022, 22:14

seul le contenu du champ value est transmis, donc ce n'est pas possible de récupérer l'id en php.
à noter que l'interface utilisateur serait bien plus ergonomique avec du javascript qui fait apparaitre à la volée des nouveaux champs plutôt que de multiplier des appels de fichiers php.

Avatar du membre
Mammouth du PHP | 1564 Messages

16 mai 2022, 23:29

type="texte" n'existe pas.

C'est
<input type="text" value="contenu du champ"/>
ou
<textarea>contenu du champ</textarea>

Eléphant du PHP | 213 Messages

18 mai 2022, 10:48

Bonjour à Tous,
Merci pour votre aide.
J'ai pu trouver une solution qui me convient.

Code : Tout sélectionner

Poste(s) de travail <br/><br/> Veuillez selectionner l'intervention effectuée * <br/> <form method="post" action="sdp-autre-intervention.php" > <select name="demg" required/> <option value="">Selectionner...</option> <option value="DEM_PDT" id="DEM">Déménagement</option> <option value="PRT" id="PRT">Prêt</option> <option value="NDO" id="NDO">Nouvelle dotation sans reprise</option> <option value="REP" id="REP">Reprise sans nouvelle dotation</option> <option value="REN" id="REN">Nouvelle dotation + reprise(renouvelement)</option> </select> <br/><br/> Veuillez selectionner le type de poste * <br/> <select name="prt" required/> <option value="">Selectionner...</option> <option value="PCF"" >Poste fixe</option> <option value="LAP">Laptop + avec ou sans station d'accueil</option> <option value="SCI" >Poste scientifique</option> </select> <br/><br/> <table align="center"> <tr> <td align="center"> <b>New asset:*</b> </td> <td align="center"> <b>Old asset:*</b> </td> </tr> <tr> <td> <div id="new-asset-group" style="display: none;"> <textarea name="new-asset" id="new-asset" require ></textarea> <br/> <input type="radio" id="XXX" onchange="document.getElementById('new-asset').value=id"/> <b>Hostname inconnu <br/>ou matériel non sérialisé.</b> </div> </td> <td> <div id="old-asset-group" style="display: none;"> <textarea name="old-asset" id="old-asset" require> </textarea> <br/> <input type="radio" id="XXX" onchange="document.getElementById('old-asset').value=id"/> <b>Hostname inconnu <br/>ou matériel non sérialisé.</b> </div> </td> </tr> </table> <br/> Durée de l'opération en Minutes * <br/> <input type="hidden" name="balise" value="" /> <input type="number" name="time" tabindex="20" required /> <br/><br/> <input type="submit" value="Suivant"/> </form> <script> let demgSelect = document.querySelector('[name="demg"]'); // On va intercepter les événements "change" du select // Cela correspond à un changement d'option sélectionnée demgSelect.addEventListener('change', function() { // On cache les assets par défaut document.querySelector('#new-asset-group').style.display = 'none'; document.querySelector('#new-asset-group textarea').removeAttribute("required"); document.querySelector('#old-asset-group').style.display = 'none'; document.querySelector('#old-asset-group textarea').removeAttribute("required"); // Si la valeur du select est REN alors on affiche les 2 assets if(this.value === 'REN') { document.querySelector('#new-asset-group').style.display = 'block'; document.querySelector('#new-asset-group textarea').setAttribute("required","required"); document.querySelector('#old-asset-group').style.display = 'block'; document.querySelector('#old-asset-group textarea').setAttribute("required","required"); } // Sinon si la valeur est REP, alors on affiche que les vieux assets else if(this.value === 'REP') { document.querySelector('#old-asset-group').style.display = 'block'; document.querySelector('#old-asset-group textarea').setAttribute("required","required"); } // Sinon si la valeur est DEM_PDT ou PRT ou NDO , alors on affiche que le New asset else if(this.value === 'DEM_PDT' ,'PRT' ,'NDO') { document.querySelector('#new-asset-group').style.display = 'block'; document.querySelector('#new-asset-group textarea').setAttribute("required","required"); } }); </script>
Merci.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.