Récupérer les valeurs d'un tableau pour faire une phrase PHP
Fermé
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
-
28 févr. 2022 à 05:56
Tourist - 7 mars 2022 à 12:29
Tourist - 7 mars 2022 à 12:29
A voir également:
- Récupérer les valeurs d'un tableau pour faire une phrase PHP
- Tableau croisé dynamique - Guide
- Comment faire un tableau - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Tableau ascii - Guide
- Recuperer video youtube - Guide
3 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
28 févr. 2022 à 06:46
28 févr. 2022 à 06:46
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
28 févr. 2022 à 08:42
28 févr. 2022 à 08:42
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
28 févr. 2022 à 09:08
28 févr. 2022 à 09:08
Mon bouton est
<input type="submit" value="" id="envoyer">
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
28 févr. 2022 à 09:20
28 févr. 2022 à 09:20
Oui et ?
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
28 févr. 2022 à 09:45
28 févr. 2022 à 09:45
ceux que j'aimerai savoir comment je peux faire pour que la phrase que je souhaite fonctionne quand j'appuie sur envoyer
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
28 févr. 2022 à 11:50
28 févr. 2022 à 11:50
Tu as été voir le lien que je t'ai donné ?
Tu as essayé de coder un truc en php ?
Par ce que.. pour l'instant .. on ne sait rien du code que tu as écrit ni sur quoi tu bloques.
Ici .. on ne donne pas de code sur mesure... mais on veut bien t'aider à le corriger si tu en as fait un !
Tu as essayé de coder un truc en php ?
Par ce que.. pour l'instant .. on ne sait rien du code que tu as écrit ni sur quoi tu bloques.
Ici .. on ne donne pas de code sur mesure... mais on veut bien t'aider à le corriger si tu en as fait un !
Kymej
Messages postés
12
Date d'inscription
vendredi 25 février 2022
Statut
Membre
Dernière intervention
28 février 2022
28 févr. 2022 à 12:46
28 févr. 2022 à 12:46
<form action="#" method="post" style="width: 40%; float: right;"> <strong id="res"> Renseignez un pseudo pour afficher ses statistiques. </strong> <div></div> <select name="pseudo" id="pseudo" onchange="this.form.submit()"> <option value="">-- sélectionner un sapeur --</option> <?PHP $afficher = mysqli_query($con,"SELECT * FROM contenu_section_cds WHERE id_section = '$id_section' ORDER BY grade DESC"); while($row = mysqli_fetch_array($afficher)) { if($row['grade'] == '2') { $nom_grade = 'Sapeur 1ère classe'; } if($row['grade'] == '3') { $nom_grade = 'Caporal'; } if($row['grade'] == '4') { $nom_grade = 'Caporal-chef'; } if($row['grade'] == '5') { $nom_grade = 'Sergent'; } if($row['grade'] == '6') { $nom_grade = 'Sergent-chef'; } if($row['grade'] == '7') { $nom_grade = 'Adjudant'; } if($row['grade'] == '8') { $nom_grade = 'Adjudant-chef'; } if($row['grade'] == '9') { $nom_grade = 'Lieutenant'; } if($row['grade'] == '10') { $nom_grade = 'Capitaine'; } if($row['grade'] == '11') { $nom_grade = 'Commandant'; } if($row['grade'] == '12') { $nom_grade = 'Lieutenant-Colonel'; } if($row['grade'] == '13') { $nom_grade = 'Colonel'; } if($row['grade'] == '14') { $nom_grade = 'Colonel Hors Classe'; } if($row['grade'] == '15') { $nom_grade = 'Contrôleur Général'; } if($row['grade'] == '16') { $nom_grade = 'Contrôleur Général avec Mission d\'état'; } $search = mysqli_query($con, "SELECT COUNT(*) AS nombre FROM avis_cds WHERE pseudo = '".$row['pseudo']."'"); $ok = mysqli_fetch_array($search); if($ok['nombre'] == '0') { ?> <option value="<?PHP echo $row['pseudo']; ?>"><?PHP echo $nom_grade; ?> <?PHP echo $row['pseudo']; ?></option> <?PHP } } ?> </select> <?php if(isset($_POST["pseudo"])){ $sapp=$_POST["pseudo"]; $aff_section = mysqli_query($con,"SELECT * FROM contenu_section_cds WHERE pseudo = '$sapp' LIMIT 1"); $as = mysqli_fetch_array($aff_section); $PA = $as['PA']; $PY = $as['CP']; $HU = $as['humeur']; $RAP = $as['rappel']; echo nl2br("\n\n<textarea rows=6 cols='50'>{$sapp} à des statistiques: Dépense de PA {$PA}% Condition Physique {$PY}% et une Humeur de {$HU} </textarea>"); } ?> <br> <input type="submit" value="" id="envoyer"> </form>
Ceux qui me bloque chaque fois s'est le refesh de
onchange="this.form.submit()">
Salut,
vous avez oublié la méthode dans la balise de votre formulaire(attribut method=).
Il y a deux possibilités pour la valeur de cet attribut soit GET soit POST.
La méthode GET envoie les données directement dans l'URL (ce qui n'est pas du tout sécurisé et à éviter généralement) soit à des variables dites globales(ou super globales) accessible en PHP sur le serveur.
Ensuite vous utilisez JavaScript pour envoyer le formulaire(mais votre code est faux et devrait vous indiquer une erreur dans la console : à quoi correspond le this.form selon vous? dans quel contexte, voir la portée des variables en JavaScript et surtout comment accéder à un lément de la page avec le DOM JavaScript), le destinataire de la page qui va traiter les données est indiqué par l'attribut ACTION auquel vous avez indiqué la valeur # qui indique la même page(que celle qui envoi les données).
Un formulaire(HTML) envoi des données.
Qui dit envoi implique un destinataire et la méthode indique la façon dont on pourra accéder à ces données.
Accéder aux données implique qu'il faut les traiter pour en faire ce qu'on en veut.
Faite une recherche sur "formulaire en PHP" et vous verrez il existe de nombreux cours/tutos sur le sujet, c'est même la base du fonctionnement/utilité de PHP: traiter des données envoyées par l'utilisateur(client) au serveur(et inversement en général avec un autre élément côté serveur qui est la base de données, ce sont les requêtes SQL).
Sauf que tout dépends aussi de l'utilisation de ces données.
Si vous ne voulez afficher quelque chose directement dans la page il n'y a pas besoin de PHP(c'est même à éviter car implique de faire fonctionner le serveur, générer à nouveau la page et va donc ralentir l'affichage).
Bien sûr une fois la page fermée son affichage n'existe plus et rien ne peut être retenu (sauf en le stockant dans l'ordinateur de l'utilisateur avec des cookies ou mieux localStorage ce qui n'est pas vraiment fiable pour certaines raisons que je ne vais pas détailler).
Donc il manque quelques étapes/raisonnement essentiel dans votre programmes à commencer par:
Nulle part vous ne traitez les données reçues une fois qu'elles ont été envoyées pour en faire quelque chose.
Si vous cherchez une solution JavaScript(aucune donnée n'a à être enregistrée) vous devez clairement comprendre que le JavaScript et le PHP ne peuvent pas fonctionner ensemble et ne fonctionne même pas au même moment, ou alors il faut passer par l'astuce AJAX qui va relier de façon asynchrone les deux par un fichier de métadonnées généré avant l'affichage de la page pour l'utiliser après(une fois la page chargée/affichée) mais ça reste un cas et une utilisation particulière (qui sert à éviter de faire à nouveau appel au serveur).
PHP = Hypertexte Preprocessor = fonctionne avant que la page soit chargé et permet de générer le contenu de la page à envoyer côté serveur(de manière sécurisé donc).
JavaScript = inclus dans le navigateur et associé à la page.
En JavaScript voici un exemple pour changer l'affichage de quelque chose lors de l'événement onChange:
https://www.w3schools.com/jsref/event_onchange.asp
Remarquez que (même en se passant du formulaire puisque les données n'ont pas à être envoyées elles existent déjà dans la page) le programme de l'exemple utilise une fonction ce qui permet de rendre le code plus clair et de regrouper 2 lignes de codes qui écrites directement dans l'attribut serait lourde à afficher et lire pour un humain et impliquerait facilement des erreurs(car peu clair et facile de faire une erreur de syntaxe). Et aussi comment l'élément qui contient a valeur est obtenue dans une variable en utilisant document.getElementById(ID_DE_L_ELEMENT) . C'est une syntaxe objet, document est l'objet qui contient tout les autres(pas complétement vrai mais grosso modo) et donc au contexte de la portée des variables qui n'est pas this en fait*(voir lien à la fin).
Si c'est juste pour changer/afficher un texte lors d'un changement de valeur d'un select vous pouvez utiliser ceci.
Sinon il faudra faire l'équivalent en PHP avec l'ajout bien sûr de l'enregistrement des données après leur traitement(passer par une requête sur la base de données par exemple).
adhoc en (méthode)POST
Plus complet en utilisant POST sur la même page:
https://www.w3schools.com/Php/php_superglobals_post.asp
En s'éloignant un peu d sujet/réponse mais pour mieux comprendre ce qui n va pas dans votre code:
this en JavaScript:
https://www.w3schools.com/js/js_this.asp
La portée des variables(scope en anglais)
https://www.w3schools.com/js/js_scope.asp
Voir aussi (éventuellement) JavaScript strict mode qui empêche certaines possibilités d'erreurs et ce qu'est la TemporalDeadZone (zone temporelle morte) = quand les variables utilisées n'existent plus et spécifique à la plupart de langage de script utilisant un garbage collector = la gestion automatique de la mémoire = les variables utilisant la mémoire pour stocker quelque chose.
Par automatique cela veut dire que vous n'avez pas besoin d'adresser les octets dans les composants électroniques vous même pour y accéder/stocker et libérer quand la variable n'est plus utilisé(et éviter pas mal de soucis comme surcharger la mémoire de l'ordinateur ou savoir l'écriture binaire et gérer l'électronique dans votre programme ce que fait/nécessite les langages bas niveau = proche de ce qui se passe réellement pour l'électronique de la machine, langage haut niveau = éloigné de l'électronique réelle pour se rapprocher des concepts humains qui ne sont pas exprimées par une valeur électrique 0 ou 1 pour aucune tension électrique ou 1 une tension électrique dans le composant -transistor/condensateur/ponts ).
vous avez oublié la méthode dans la balise de votre formulaire(attribut method=).
Il y a deux possibilités pour la valeur de cet attribut soit GET soit POST.
La méthode GET envoie les données directement dans l'URL (ce qui n'est pas du tout sécurisé et à éviter généralement) soit à des variables dites globales(ou super globales) accessible en PHP sur le serveur.
Ensuite vous utilisez JavaScript pour envoyer le formulaire(mais votre code est faux et devrait vous indiquer une erreur dans la console : à quoi correspond le this.form selon vous? dans quel contexte, voir la portée des variables en JavaScript et surtout comment accéder à un lément de la page avec le DOM JavaScript), le destinataire de la page qui va traiter les données est indiqué par l'attribut ACTION auquel vous avez indiqué la valeur # qui indique la même page(que celle qui envoi les données).
Un formulaire(HTML) envoi des données.
Qui dit envoi implique un destinataire et la méthode indique la façon dont on pourra accéder à ces données.
Accéder aux données implique qu'il faut les traiter pour en faire ce qu'on en veut.
Faite une recherche sur "formulaire en PHP" et vous verrez il existe de nombreux cours/tutos sur le sujet, c'est même la base du fonctionnement/utilité de PHP: traiter des données envoyées par l'utilisateur(client) au serveur(et inversement en général avec un autre élément côté serveur qui est la base de données, ce sont les requêtes SQL).
Sauf que tout dépends aussi de l'utilisation de ces données.
Si vous ne voulez afficher quelque chose directement dans la page il n'y a pas besoin de PHP(c'est même à éviter car implique de faire fonctionner le serveur, générer à nouveau la page et va donc ralentir l'affichage).
Bien sûr une fois la page fermée son affichage n'existe plus et rien ne peut être retenu (sauf en le stockant dans l'ordinateur de l'utilisateur avec des cookies ou mieux localStorage ce qui n'est pas vraiment fiable pour certaines raisons que je ne vais pas détailler).
Donc il manque quelques étapes/raisonnement essentiel dans votre programmes à commencer par:
Nulle part vous ne traitez les données reçues une fois qu'elles ont été envoyées pour en faire quelque chose.
Si vous cherchez une solution JavaScript(aucune donnée n'a à être enregistrée) vous devez clairement comprendre que le JavaScript et le PHP ne peuvent pas fonctionner ensemble et ne fonctionne même pas au même moment, ou alors il faut passer par l'astuce AJAX qui va relier de façon asynchrone les deux par un fichier de métadonnées généré avant l'affichage de la page pour l'utiliser après(une fois la page chargée/affichée) mais ça reste un cas et une utilisation particulière (qui sert à éviter de faire à nouveau appel au serveur).
PHP = Hypertexte Preprocessor = fonctionne avant que la page soit chargé et permet de générer le contenu de la page à envoyer côté serveur(de manière sécurisé donc).
JavaScript = inclus dans le navigateur et associé à la page.
En JavaScript voici un exemple pour changer l'affichage de quelque chose lors de l'événement onChange:
https://www.w3schools.com/jsref/event_onchange.asp
Remarquez que (même en se passant du formulaire puisque les données n'ont pas à être envoyées elles existent déjà dans la page) le programme de l'exemple utilise une fonction ce qui permet de rendre le code plus clair et de regrouper 2 lignes de codes qui écrites directement dans l'attribut serait lourde à afficher et lire pour un humain et impliquerait facilement des erreurs(car peu clair et facile de faire une erreur de syntaxe). Et aussi comment l'élément qui contient a valeur est obtenue dans une variable en utilisant document.getElementById(ID_DE_L_ELEMENT) . C'est une syntaxe objet, document est l'objet qui contient tout les autres(pas complétement vrai mais grosso modo) et donc au contexte de la portée des variables qui n'est pas this en fait*(voir lien à la fin).
function myFunction(){ /* création d'une varialble "x" à qui est attribuée la valeur de l'élément identifié par son ID mySelect*/ var x = document.getElementById("mySelect").value; /* traitement pour ce qu'on veut en faire, ici changer le texte de l'élément ayant pour ID "demo"*/ document.getElementById("demo").innerHTML = "You selected: " + x; }
Si c'est juste pour changer/afficher un texte lors d'un changement de valeur d'un select vous pouvez utiliser ceci.
Sinon il faudra faire l'équivalent en PHP avec l'ajout bien sûr de l'enregistrement des données après leur traitement(passer par une requête sur la base de données par exemple).
adhoc en (méthode)POST
/** traitement des données reçues du formulaire)*/ $n = $_POST['nom']; /* $_POST['nom'] correspond à un champ du formulaire nommé 'nom' avec l'attrbiut*/ $p = $_POST['prenom'];/* $_POST['prenom'] correspond à un champ du formulaire nommé 'prenom' */ /** cette étape précédente et passer par $p et $n peut paraître superflu dans mon exemple mais dans la réalité elle permet de tester les valeurs et sécuriser les données, ainsi que de ne pas rester avec des valeurs POST qui ont une durée d'existence qui peut être limitée dans le temps */ /**- j'ai pas mis en dessous tout pour écrire plus vite mais bien sûr avec le DOCTYTPE, HEAD et BODY c'est mieux bien que l'on pouisse très bien fonctionner en modulaire(plusieurs scripts/page PHP vont générer des petits bouts du HTML qui vont être mis bout à bout, il fauidra bien sûr qu la page indiqué par ACTION du formulaire charge les pages php nécessaires , voir par exemple require et require_once)*/ <?php echo '<html><p>Vous vous appellez: '.$p.' '.$n.'</p></html>'; ?>
Plus complet en utilisant POST sur la même page:
https://www.w3schools.com/Php/php_superglobals_post.asp
En s'éloignant un peu d sujet/réponse mais pour mieux comprendre ce qui n va pas dans votre code:
this en JavaScript:
https://www.w3schools.com/js/js_this.asp
La portée des variables(scope en anglais)
https://www.w3schools.com/js/js_scope.asp
Voir aussi (éventuellement) JavaScript strict mode qui empêche certaines possibilités d'erreurs et ce qu'est la TemporalDeadZone (zone temporelle morte) = quand les variables utilisées n'existent plus et spécifique à la plupart de langage de script utilisant un garbage collector = la gestion automatique de la mémoire = les variables utilisant la mémoire pour stocker quelque chose.
Par automatique cela veut dire que vous n'avez pas besoin d'adresser les octets dans les composants électroniques vous même pour y accéder/stocker et libérer quand la variable n'est plus utilisé(et éviter pas mal de soucis comme surcharger la mémoire de l'ordinateur ou savoir l'écriture binaire et gérer l'électronique dans votre programme ce que fait/nécessite les langages bas niveau = proche de ce qui se passe réellement pour l'électronique de la machine, langage haut niveau = éloigné de l'électronique réelle pour se rapprocher des concepts humains qui ne sont pas exprimées par une valeur électrique 0 ou 1 pour aucune tension électrique ou 1 une tension électrique dans le composant -transistor/condensateur/ponts ).