comment obtenir un enregistrement dans une liste déroulante en utilisant à la fois une valeur de champ de saisie et une autre valeur de liste déroulante

AmourJÉSUS

j'ai 2 tables (connexion et table de sujet respectivement). le champ de saisie contient l'identifiant de l'utilisateur de la session (de la table de connexion) tandis que la 1ère liste déroulante contient toutes les classes qui lui sont attribuées (de la table des sujets). comment puis-je collecter tous les sujets attribués à chaque classe dans une deuxième liste déroulante toujours à partir de la table des sujets en utilisant ajax si possible. Remarque :(La table des sujets a des classes, des sujets, un identifiant de personnel). ci-dessous mon code :

<td class="header">TEACHER ID:</td>
<td>
<label>
<input type="text" name="staffid" class="input_txt" id="teachID" value="
<?php echo $staffDetails->staffID; ?>"></label>
</td>
<td class="header">CLASS:</td>
<td>
    <select name="txtclassname" class="input_txt" id="class">
        <option value="">-- Select Class --</option>
<?php
 $staff = $staffDetails->staffID;
 $stmt = $db->prepare("SELECT distinct className FROM subjects WHERE staffID = :sid");
 $stmt->execute(array("sid"=>$staff));
 while($row = $stmt->fetch(PDO::FETCH_ASSOC))
 {
  ?>
 <option value=""><?php echo $row['className']; ?></option>
 <?php
 }
 ?>
 </select>
 </td>
<td class="header">SUBJECTS:</td>
    <td>
<!--I need all the subjects for a chosen class here-->
       <select name="txtclassname" class="input_txt" id="class">
          <option value="">--</option>
       </select>
    </td>

le code javascript modifié :

<script type="text/javascript">
$(document).on('change', '#staffclass', function(){
    if($(this).val() !==""){
        $.ajax('get_staffSubjects.php?staffclass='+ $(this).val()).done(function(jsonOrHtml)){
            var JSON = JSON.parse(jsonOrHtml);
            var subjectSelect = $('#subject');
            subjectSelect.html('<option value="">--Select Subject--</option>');
            for(var i=0; i<json.length; i++){
                subjectSelect.append('<option value="">'+json[i]+'</option>');
            }
        });
    }
);
</script>

mon script côté serveur (nommé:get_staffSubjects.php)

<?php
require_once 'myConn.php';
require_once 'session.php';
$db = getDB();

if(($_POST['staffclass']) & ($_POST['teachID']))
{
$staff = $_POST['teachID'];
$subs = $_POST['staffclass'];    
$stmt = $db->prepare("SELECT * FROM subjects WHERE className=:staffclass AND staffID=:teachID");
$stmt->execute(array('id'=>$subs, 'teachID'=>$staff));
?>
<option value="">Select Subject:</option>
<?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value=""><?php echo $row['subName']; ?></option>
<?php
}
}
?>
kennasoft

Salut et bienvenue sur stackoverflow. Je suppose simplement que vous savez quoi faire côté serveur pour obtenir les sujets et vous montrer comment utiliser jquery pour les obtenir via ajax.

<td class="header">TEACHER ID:</td>
<td>
    <label>
        <input type="text" name="staffid" class="input_txt" id="teachID" value="<?php echo $staffDetails->staffID; ?>">
    </label>
</td>
<td class="header">CLASS:</td>
<td>
    <select name="txtclassname" class="input_txt" id="class">
        <option value="">-- Select Class --</option>
 <?php
 $staff = $staffDetails->staffID;
 $stmt = $db->prepare("SELECT distinct className FROM subjects WHERE staffID = :sid");
 $stmt->execute(array("sid"=>$staff));
 while($row = $stmt->fetch(PDO::FETCH_ASSOC))
 {
  ?>
     <option value=""><?php echo $row['className']; ?></option>
 <?php
 }
 ?>
     </select>
</td>
<td class="header">SUBJECTS:</td>
<td>
<!--Notice that I've changed the name and id of this drop-down, as I expect you need those to be unique -->
   <select name="txtsubject" class="input_txt" id="subject">
      <option value="">--Select Subject--</option>
   </select>
</td>
<script type="text/javascript">
    //I'm using jquery, which is a quick solution
    //NB: I don't like that the id='class', better use some other name
$(document).ready(function(){ // this ensure the code below happens after page is fully loaded
    $(document).on('change', '#class', function(){
        if($(this).val()!==""){
             $.ajax('get_staffSubjects.php?staffclass='+ $(this).val()).done(function(html){

                var subjectSelect = $('#subject');
                //since html is constructed on the server side, we'll just append the response to the drop-down
                subjectSelect.html(html);
            });
        }
    });
});
</script>

Faites moi savoir si vous avez des questions.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive