Afficher le résultat d'une requête SQL dans une zone de texte

Fermé
Leon290919978 - Modifié le 31 mars 2020 à 21:30
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 1 avril 2020 à 08:28
Bonsoir,

Je souhaite que lors de la sélection d'une option, une valeur s'affiche dans une balise input type="text".

Ici je veux afficher les initiales d'un patient lorsque je sélectionne son numéro.

Voici mon code mais il ne marche pas :
<form action="" method="post">
    <table>
        <tr><td>Numéro du patient :</td><td><select class="liste_numPatient" name="listePatient" required>
        <?php // récupération des numéros des patients pour les ajouter à la liste déroulante
            echo '<option value=""></option>';
            $res = $conx->query('SELECT NumPatient From PATIENT ORDER BY NumPatient');
            while ($data = $res->fetch()) {
                echo "<option value=".$data[0].">".$data[0]."</option>";
            }
            $res->closeCursor();
            echo '</select></td></tr>';
        ?>
    </table>
</form>
<?php
    if(isset($_POST['listePatient'])) // si on sélectionne un numéro de patient alors
    {
        $Num=$_POST['listePatient'];
        $res = $conx->query('SELECT IniPatient From PATIENT WHERE (NumPatient='.$Num.');');
        echo '<td>Initiales : <input class="textbox_ini" type="text" name="iniPatient" value="'.$res.'"></td></tr>';
    }
?>


J'avoue ne pas comprendre pourquoi ça ne marche pas et ça me donne cette erreur :
"Fatal error: Uncaught Error: Object of class PDOStatement could not be converted to string" qui pointe la ligne 36 (ou la ligne 20 dans le bout de code plus haut) et là aussi je comprends pas.

Vous auriez une solution ou une idée de ce qui pose problème ? Merci.

2 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 mars 2020 à 21:33
Bonjour

Tu as oublié de faire un fetch sur le résultat de ta requête
1
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 mars 2020 à 21:34
Je ne vois pas non plus le bouton submit ou le code javascript qui le déclencherai dans le code que tu nous montres...
0
Leon290919978
1 avril 2020 à 01:36
En effet j'avais oublié de faire un fetch(), merci.

Je ne veux pas de bouton submit mais j'y connais rien en javascript. En me documentant j'ai vu qu'il faut ajouter l’événement onchange="" dans la balise <select> pour appeler une fonction JS mais je n'ai pas trouvé comment exécuter du PHP depuis le script JS.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
1 avril 2020 à 08:28
<select onchange="this.form.submit()">
    ...
</select>


Par contre cela va recharger la page avant de pouvoir exécuter le code php

Si tu veux pouvoir effectuer ta requête SQL sans avoir à recharger la page (via un submit) tu vas devoir t'orienter vers l'ajax.
(et donc apprendre un minimum le javascript)
Exemples ici : https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
0