Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP / MySQL -> Aufbau einer dynamischen HTML Seite

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe folgende DB Tabellen:

abteilung (primary anr, name)

person ( primary pnr, vorname, nachname, tel, email, foreign key f_anr )

Ich möchte eine Administrationsmaske für die Personentabelle programmieren.

Auf dieser werden alle Datensätze aus der Tabelle peson aufgelistet. funktioniert auch schon.

Es werden alle Felder bis auf das Feld Abteilung als Textfield angezeigt. Das Feld Abteilung ist ein Fremdschlüssel, diesen möchte ich über ein Dropdown Feld anzeigen lassen, da der User nur vorhandene Abteilungen auswählen können soll, wenn er einen Datensatz editiert.

Wie schaffe ich es, dass er mir in dem dynamischen Template die richtige Abteilung auf option selected setzt und die anderen normal?

Schnipsel aus meinem Template:

<select name="abteilung" class="Auswahl">

<!-- BEGIN department -->

<option{DEFAULT}>{ABTEILUNG}</option>

<!-- END department -->

</select>

Ich habe eine ForSchleife, die mir alle Personen Daten andruckt.

Jetzt kann ich doch ein SQL Statement machen, das mir alle Abteilungen ausgibt und ein SQL Statement, das mir für die Person, bei der ich gerade bin die Abteilung ausgibt.

Wenn SQL Statment 1 und 2 übereinstimmen, dann setze ich DEFAULT = selected und sonst lasse ich es leer.

Das klappt nur leider nicht.

Kann mir jemand von Euch helfen. Stimmt meine Logik nicht? Oder wie kann ich so etwas lösen?

Falls Bedarf vorhanden, poste ich auch noch mehr Code.

Danke korea1

welches TemplateSystem?

Hi,

hilft dir das weiter?

/*

* Session Management for PHP3

*

* © Copyright 1999-2000 NetUSE GmbH

* Kristian Koehntopp

*

* $Id: template.inc,v 1.5 2000/07/12 18:22:35 kk Exp $

*

*/

Gibt es in PHP sowas wie Pointer? Mein Problem is nur, dass ich eben wissen muss bei welcher Person ich gerade bin. Mir würde eine Variable reichen, die dann eben pro Schleifendurchlauf geändert wird.

Ich kann das nur leider nicht in der "Personenschleife" machen, sonst kommt was völlig wirres raus.

Hier mal meine Codeschnipsel aus der PHP Datei:

//Query der Personendaten selektiert
$SQLQuery = "
SELECT
p.vorname, p.nachname, p.tel, p.email, a.name, p.pnr
FROM
person p, abteilung a
WHERE
p.f_anr = a.anr
ORDER BY p.nachname
";
$DB->ExecQuery($SQLQuery);

//Befüllen des HTML TPL
for($i=0; $i<$DB->GetNumberOfRows();$i++){
$tpl->set_var(array("VORNAME" => $DB->GetValue($i,"vorname"),
"NACHNAME" => $DB->GetValue($i,"nachname"),
"TEL" => $DB->GetValue($i,"tel"),
"MAIL" => $DB->GetValue($i,"email"),
"ID" => $DB->GetValue($i,"pnr"),
));

$tpl->parse("temp","datenblatt",true);
}//eof for($i=0; $i<$DB->GetNumberOfRows();$i++)

$DB2 = new DBConnection();
$DB3 = new DBConnection();

$SQLQueryEditPerson = "SELECT a.name FROM abteilung a, person p WHERE a.anr = p.f_anr";
$DB2->ExecQuery($SQLQueryEditPerson);

$SQLQueryAbteilungDropDownMenue= "SELECT a.name AS Abteilung FROM abteilung a ";
$DB3->ExecQuery($SQLQueryAbteilungDropDownMenue);

for($i=0; $i<$DB3->GetNumberOfRows();$i++){
if($DB3->GetValue($i,"Abteilung") == $DB2->GetValue($i,"name")){
$Default = " selected";
}else{
$Default = "";
}
$tpl->set_var(array("ABTEILUNG" => $DB3->GetValue($i,"Abteilung"),
"DEFAULT" => $Default
));
$tpl->parse("temp3","department",true);
}//eof for ($i=0; $i<$DB3->GetNumberOfRows();$i++)[/PHP]

MfG korea1

Bietet dir deine TemplateEngine die Möglichkeit innerhalb deines Templates IF-Clauses einbauen?

Hi,

wie meinst du das? Im HTML Template?

Kannst du mal ein kleines Beispiel machen.

Danke korea1

Hi,

wie meinst du das? Im HTML Template?

Kannst du mal ein kleines Beispiel machen.

Danke korea1

in der TemplateEngine die ich verwende kann ich z.b. If-Statements verwenden:

http://smarty.php.net/manual/en/language.function.if.php

dann würde ich das Template ungefähr so aufbauen:

Achtung PseudoCode! :)


<select name="abteilung" class="Auswahl">

   <!-- BEGIN department -->

   <option

      <!-- IF $Abteilung == $Default -->

      selected="selected"

      <!-- ENDIF -->

   >{ABTEILUNG}</option>

   <!-- END department -->

</select>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.