Java Datenbankabfrage + Dropdownliste


peschka

Grünschnabel
Hallo Leute,
ich bin total am verzweifeln und hoffe hier im Forum HIlfe zu kriegen ;-)

Es geht darum, dass ich eine art Stundenplan-Liste mit Datenbankabfrage machen möchte worüber man auch die entsprechenden Kurse etc. eingeben und in der Datenbank speichern kann.

Eine normale Abfrage und Eingabe per Java+Ajax ist so nicht das Problem, es scheitert eher darum, dass ich gerne zwei Tabellen haben (Stundenplan, Lehrer) möchte - wobei die Inhalte der Tabelle "Lehrer" in der Stundenplan-Üübersicht als Dropdown-Liste erscheint statt immer den Namen eintragen zu müssen (siehe Schaubild)

Folie1.JPG

Der Code sieht wie folgt aus:


fetch_data.php

Code:
<?php

$connect = new PDO("mysql:host=localhost;dbname=xxx;charset=utf8","xxx", "xxx");

$method = $_SERVER['REQUEST_METHOD'];

if($method == 'GET')
{
 $data = array(
  ':uhr'   => "%" . $_GET['uhr'] . "%",
    ':fach'   => "%" . $_GET['fach'] . "%",
     ':klasse'   => "%" . $_GET['klasse'] . "%"
    
 );
 $query = "SELECT * FROM stundenplan WHERE uhr LIKE :uhr AND fach LIKE :fach AND klasse LIKE :klasse ORDER BY id DESC";

 $statement = $connect->prepare($query);
 $statement->execute($data);
 $result = $statement->fetchAll();
 foreach($result as $row)
 {
  $output[] = array(
   'id'    => $row['id'],   
   'uhr'  => $row['uhr'],
      'fach'  => $row['fach'],
      'klasse'  => $row['klasse']
  );
 }
 header("Content-Type: application/json");
 echo json_encode($output);
}

if($method == "POST")
{
 $data = array(
  ':uhr'  => $_POST['uhr'],
     ':fach'  => $_POST['fach'],
     ':klasse'  => $_POST['klasse']
 );

 $query = "INSERT INTO stundenplan (uhr, fach, klasse) VALUES (:uhr, :fach, :klasse)";
 $statement = $connect->prepare($query);
 $statement->execute($data);
}

if($method == 'PUT')
{
 parse_str(file_get_contents("php://input"), $_PUT);
 $data = array(
  ':id'   => $_PUT['id'],
  ':uhr' => $_PUT['uhr'],
     ':fach' => $_PUT['fach'],
     ':klasse' => $_PUT['klasse']
 );
 $query = "
 UPDATE stundenplan
 SET uhr = :uhr,
 fach = :fach,
 klasse = :klasse
 WHERE id = :id
 ";
 $statement = $connect->prepare($query);
 $statement->execute($data);
}

if($method == "DELETE")
{
 parse_str(file_get_contents("php://input"), $_DELETE);
 $query = "DELETE FROM stundenplan WHERE id = '".$_DELETE["id"]."'";
 $statement = $connect->prepare($query);
 $statement->execute();
}

?>

index.php

Code:
<html> 
    <head> 
        <title>stundenplan</title> 
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.css" />
  <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid-theme.min.css" />
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.js"></script>
        
  <style>
  .hide
  {
     display:none;
  }
  </style>
    </head> 
    <body> 
        <div class="container"> 
   <br />
   <div class="table-responsive"> 
    <h3 align="center">Stundenplan</h3><br />
    <div id="grid_table"></div>
   </div> 
  </div>
    </body> 
</html> 
<script>
 
        
    $('#grid_table').jsGrid({

     width: "100%",
     height: "600px",

     filtering: true,
     inserting:true,
     editing: true,
     sorting: true,
     paging: true,
     autoload: true,
     pageSize: 10,
     pageButtonCount: 5,
     deleteConfirm: "Do you really want to delete data?",

     controller: {
      loadData: function(filter){
       return $.ajax({
        type: "GET",
        url: "fetch_data.php",
        data: filter
       });
      },
      insertItem: function(item){
       return $.ajax({
        type: "POST",
        url: "fetch_data.php",
        data:item
       });
      },
      updateItem: function(item){
       return $.ajax({
        type: "PUT",
        url: "fetch_data.php",
        data: item
       });
      },
      deleteItem: function(item){
       return $.ajax({
        type: "DELETE",
        url: "fetch_data.php",
        data: item
       });
      },
     },

     fields: [
        
      {
       name: "id",
    /*type: "hidden",  */
    css: 'hide'
      },
    
      {
       name: "uhr",
    type: "text",
    width: 50,
    validate: "required"
      },
        
          {
       name: "lehrer",
    type: "text",
    width: 50,
    validate: "required"
      },
        
          {
       name: "fach",
    type: "text",
    width: 50
      },
          {
       name: "klasse",
    type: "text",
    width: 50
      },
              
        
      {
       type: "control"
      }
     ]

    });

</script>


der Knackpunkt an der Sache wird wohl hier liegen:
da weiss ich einfach nicht wie ich die Daten aus der "lehrer" Tabelle raushole und diese in form einer Dropdown-Liste zum Auswählen bereit stelle


Code:
{
       name: "lehrer",
    type: "text",
    width: 50,
    validate: "required"
      },

Am Ende soll es quasi so aussehen:

Folie3.JPG

Für jede Hilfe wäre ich sehr sehr dankbar.

Gruss
A.Peschka
 

zerix

Hausmeister
Moderator
Hallo,

ich gehe mal davon aus, dass du JavaScript und nicht Java meinst. Deshalb verschiebe ich das Thema mal in das richtige Forum.

Viele Grüße
Sascha
 

Neue Beiträge