Gerd: form action-Reaktion je nach Auswahl

Beitrag lesen

zuallererst: Bitte unterlasse es, die Einrückungen, die die Forensoftware in die Postings einfügt, zu entfernen. Ich musste dein Posting dreimal lesen, um zu rekonstruieren, welche Texte von mir und welche von dir stammen.

???? Ich bin mir keiner Schuld bewusst. Auch diesmal ändere ich an den Einzügen nichts. Dass die Forensoftware einfluss nimmt ist an den Listings zu erkennen: Sie verdoppelt z. B. die Weite der Einzüge. Ich habe mal ein Bild, wie die Vorsachau bei mir aussieht eingefügt.

Alternativ-Text>

Nur mal zum Offensichtlichsten: Der Einsatz von <table> erfordert auch den Einsatz von <tr> sowie (optional) <th> und <td>. Für die vermutlich angestrebte Struktur bietet sich bei dir stattdessen <fieldset> und <legend> an. Details findest du im Wiki.

OK

Schon die Verarbeitung auf dem Server per PHP würde ich von der HTML-Struktur trennen. Da du per PHP Werte in den JavaScript-Teil schreibst, beließe ich den PHP-Code in der Datei, würde ihn, der Entkoppelung wegen, aber vor dem HTML-Teil notieren. Dazu, dass ich die Sache völlig anders anginge, weiter unten.

Heisst das, dass der php-Teil vor dem <HEAD> oder sogar vor dem <HTML> stehen darf?

      $etage       = $_POST["etage"];	// DG OG EG KG Wa
      $zeitraum    = $_POST["zeit"];	// t(ag) d(3tage) w(oche) m(onat) j(ahr)
      $darstellung = $_POST["darst"];	// dia(gramm) tab(elle)

Soweit ich deinen Code überblicke, brauchst du diesen Umkopierschritt nicht. Du benutzt die Eingaben (momentan bis auf $_POST["darst"]) direkt in Abfragen (dazu gleich mehr) und in einem Switch-Case und verarbeitest sie nicht durch weitere Umwandlungen. Du kannst an den entsprechenden Stellen nach der Prüfung auf das Vorhandensein und den erlaubten Wertebereich durchaus die $_POST-Werte direkt benutzen.

Für mich verdeutlicht das den Datenfluss. Das ist die Schnittstelle zwischen Auswahl und Verarbeitung.

  	$abfrage_etage = "SELECT bez, name, art, solltemp 
  		FROM $tab_sens 
  		WHERE (etage = '$etage')";
  	$ergebnis_etage = mysqli_query($connection, $abfrage_etage);

Fange bösartige und Fehleingaben ab, indem du die aus Variablen stammenden Angaben mit mysqli_real_escape_string kontextgerecht maskierst. Das ist ein Muss!

Ja. Ist mir bekannt. Aber wenn das ganze Ding noch nicht das tut was ich möchte, wende ich auch keine Mühe darauf. Das ganze läuft nur im eigenen Netz.

Oder, da das äußere Klammerpaar in der Where-Klausel optional sein dürfte:

Ich setze gern Klammern. Es ist für mich besser lesbar. Auch später.

  <div class="chart-container">
  	<!-- Achtung Reihenfolge => Anordnung -->
  	<div id="diagramm1" class="chart_temp"></div>
  	<div id="legende1" class="legende"></div>
  	<div id="diagramm2" class="chart_temp"></div>
  	<div id="legende2" class="legende"></div>
  	<div id="diagramm3" class="chart_digi"></div>
  	<div id="legende3" class="legende"></div>
  </div>

So, da isser. Du hast diesen fest im HTML-Quelltext notierten Block, den du mit dem folgenden JavaScript-Teil ausfüllst. Du liest also die Daten, die nachher auf deiner Seite stehen sollen, per PHP aus einer Datenbank, fügst die ermittelten Werte in den JavaScript-Quelltext ein und übermittelst das Ergebnis als Kombination aus HTML und JavaScript an den Browser, damit dieser daraus eine Ausgabe generiert.

Sorry. Die ganze Diagramm-Geschichte ist abgekupfert. (Wie vieles andere auch. Ich lerne anhand von konkreten Beispielen). Ich habe sie nur für mich zum Laufen gebracht. aufgrund meiner Unkenntnis bin ich (noch?) nicht in Lage daran Grundsätzliches zu ändern.

Nun bin ich kein JavaScript-Crack, aber ich finde im JavaScript-Code nichts, was ich nicht auch schon auf dem Server per PHP erledigen könnte.

Die Grafik-Erzeugung mittels dygraph ist eine java-Anwendung von Google. Da komme ich um Java nicht herum. Und die Aufbereitung der Daten, d.h. die Zusammenstellung der Strings erfolgt doch schon in php. Mehr Aufgaben sehe ich für php nicht.

Auf dem Server könnte ich also sowohl die Ausgabe generieren, wie du sie jetzt per JavaScript generierst,

Das kann ich nicht.

Dennoch würde ich diese Elemente schon auf dem Server erzeugen und befüllen und mit dem fertigen Dokument an den Browser ausliefern. JavaScript würde ich hier nur für weitere Komfortfunktionen benutzen.

Schön wenn wenn man das kann. Ich bin bereit zu lernen.

Danke für die viele Mühe. Gerd