Wie wird der Wert im Dropdown-Menü basierend auf den ausgewählten Daten / IDs angezeigt?

Roseanne

Unten ist mein Code zum Drucken oder Anzeigen von Daten aus einem Array im Dropdown-Menü. Die Daten werden in der API gespeichert. Ich benutze die for-Schleife für meinen Code. Wenn ich jedoch den folgenden Code verwende, wird mehr als ein Dropdown-Feld angezeigt. Ich habe bereits nach der Lösung gesucht, aber mein Problem wurde dadurch immer noch nicht gelöst. Vielen Dank im Voraus für Ihre Hilfe.

<div class="select" id="new-input" onselect="SelectStudents()"> 
<?php $i = 0; foreach ($arr['data'] as $key => $value) { ?> 
   <select required="<?php echo ($i == 0) ? 'required':''; ?>"> 
      <option value="<?php echo $value['studentName']; ?>">
         <?php echo $value['studentName']; ?>
      </option> 
   </select> 
<?php $i++; } ?>
</div>




// Data From API
"data": [
    {
        "TeacherID": "123",
        "TeacherName": "Miss Sara",
        "StudName": "Nina Simon",
    },
    {
        "TeacherID": "124",
        "TeacherName": "Madam Downy",
        "StudName": "Mike Dave",
    },
    {
        "TeacherID": "125",
        "TeacherName": "Mr. Adam",
        "StudName": "Jenny William",
    }
]

Ich gehe davon aus, dass wenn ich im Menü auf Miss Sara klicke, der Name der Schüler unter Miss Sara (Nina Simon) im Dropdown-Menü geladen wird.

DeeZee

Ihr <select>Tag befindet sich innerhalb der Schleife, sodass der Code für jede Iteration der Schleife ein Auswahlelement erzeugt.

Versuche dies:

<div class="select" id="new-input" onselect="SelectStudents()"> 

  <select required> 

    <?php foreach ($arr['data'] as $key => $value) { 

        echo '<option value="'.$value['studentName'].'">';
        echo       $value['studentName'];
        echo '</option>';

    } ?>  

  </select>

</div>

Wenn Sie DOM-Elemente in der Liste ändern möchten, wählen Sie: Es ist wahrscheinlich besser, JavaScript zu verwenden. Wenn Sie dies jedoch serverseitig tun müssen, finden Sie hier eine Idee für eine Funktion, mit der Sie helfen können:

function getStudents($teacherID, $arr) {
  foreach ($arr as $key => $record) { 
    if ($record['TeacherID'] == $teacherID){
        return $record['StudName'];
    }
  }
}

Ich gehe davon aus, dass wenn ich im Menü auf Miss Sara klicke, der Name der Schüler unter Miss Sara (Nina Simon) im Dropdown-Menü geladen wird.

Nach meinem Verständnis möchten Sie so etwas. - Ich habe einige Annahmen darüber getroffen, was los ist. - Ich habe Daten als PHP-Variable fest codiert. - Die ursprüngliche Frage betraf jede Schleife, daher habe ich diese häufig verwendet.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
    a{
      display: block;
      margin-bottom: 1rem;
    }
    .card{
      padding: 1rem;
      background-color: #eee;
      width: 300px;
    }
    select{
      margin-top: 1rem;
      width: 300px;
    }
  </style>
</head>
<body>
<?php

  class StudentsClass
  {

    public function listStudents($teacherID, $arr) {
      foreach ($arr as $key => $record) { 
        if ($record['TeacherID'] == $teacherID){
            return $record['StudName'];
        }
      }
    }

    public function listTeachers($arr) {
      $s=[];
      foreach ($arr as $key => $record) { 
        $s[$record['TeacherID']] = $record['TeacherName'];
      }
      return $s;
    }
  }


  class DisplayHTML
  {


    public function selectHTML($list,$cssClass='') {
      $s='';
      if ($cssClass!='') $css = 'class="'.$cssClass.'" ' ; else $css = '';

      foreach ($list as $key => $item) { 
        $s.='<option '.$css.'value="'.$item.'">'.$item.'</option>';
      }
      $s = '<select>'.$s.'</select>';
      return $s;
    }

    public function anchorHTML($list,$cssClass='') {
      $s='';
      if ($cssClass!='') $css = 'class="'.$cssClass.'" ' ; else $css = '';
      foreach ($list as $key => $item) { 
        $s.='<a '.$css.'href="?teacherID='.$key.'">'.$item.'</a>';
      }
      return $s;
    }

    public function divHTML($id,$data) {
      $s='<div class="card"> <h2>My Student list</h2><ul id="studentlist"> </ul>';
      foreach ($data as $key => $item) { 
        if ($item['TeacherID']==$id){
          foreach ($item['StudName'] as $k => $value) {
            $s.='<li>'.$value.'</li>';
          }
          $s.='<h3>'.$item['TeacherName'].'</h3></div>';
          return $s;
        }
      }
      return '<div class="card">
        <h2>My Student list</h2><ul><li>-</li></ul>
        <h3>--</h3> </div>';
    }

  }


  $arr =  [
    [
        "TeacherID"=> "123",
        "TeacherName"=> "Miss Sara",
        "StudName"=> ["Nina","Simon"],
    ],
    [
        "TeacherID"=> "124",
        "TeacherName"=> "Madam Downy",
        "StudName"=> ["Mike","Dave"],
    ],
    [
        "TeacherID"=> "125",
        "TeacherName"=> "Mr. Adam",
        "StudName"=> ["Jenny","William"],
    ]
  ];



  $stlst = new DisplayHTML;
  $stdents = new StudentsClass;

  echo $stlst->anchorHTML($stdents->listTeachers($arr));
  if (isset($_GET['teacherID'])) {
    echo $stlst->divHTML($_GET['teacherID'],$arr);
    echo $stlst->selectHTML($stdents->listStudents($_GET['teacherID'],$arr));
  }


  ?>  


</body>
</html>

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    MongoDB eingebettetes Dokument unterscheiden und filtern

  2. 2

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  3. 3

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  4. 4

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  5. 5

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  6. 6

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  7. 7

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  8. 8

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  9. 9

    Ersetzen von Einträgen in einer Spalte durch eine andere basierend auf der Bedingung

  10. 10

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  11. 11

    Wie ändere ich die Farbe des Symbols und des Textes, wenn ich den Bildschirm im Navigator der unteren Registerkarte in "Reaktion native" ändere?

  12. 12

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  13. 13

    Wie lade ich eine Datei herunter, ohne den Typ oder Dateinamen zu kennen?

  14. 14

    Excel VBA - Erstellen Sie mehrere Dateien aus Daten in mehreren Arbeitsmappen

  15. 15

    Docker bleibt beim Ausführen von time.sleep (1) in einer Python-Schleife hängen

  16. 16

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  17. 17

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  18. 18

    TypeAhead.js zeigt keine Ausgangsschienen an?

  19. 19

    Pandas rufen einen Wert basierend auf dem Index ab

  20. 20

    Aktualisieren des Werts im Json-Objekt in Python

  21. 21

    Das Abrufen von einer URL zeigt einen Fehler in der Konsole an, auch nachdem er abgefangen wurde?

heißlabel

Archiv