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

Signaler
-
Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
-
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

Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
2 465
Bonjour

Tu as oublié de faire un fetch sur le résultat de ta requête
Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
2 465
Je ne vois pas non plus le bouton submit ou le code javascript qui le déclencherai dans le code que tu nous montres...

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.
Messages postés
28921
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
2 465
<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