Tipps zur Programmaufbau

Fragen zum Thema HTML, JavaScript, PHP
Ralfnator
Beiträge: 8
Registriert: Fr Apr 17, 2015 6:13 pm

Tipps zur Programmaufbau

Beitrag von Ralfnator » Mi Mai 06, 2015 3:19 pm

So, ich hoffe ich bin mit meinem Anliegen hier richtig. Die Frage zielt weniger auf einen bestimmten Quellcode ab, sondern vielmehr auf Tipps wie ich meinen Quellcode bzw. Programmteile sinnvoll strukturiere und verknüpfe.

Ich habe eine Seite, wo im linken Bereich eine mehrzeilige Auswahlliste dargestellt wird. Diese Liste enthält Namen, welche zu Datensätzen aus einer SQL-Datenbank gehören und ausgegeben werden.

In rechten Bereich befindet sich ein recht umfangreiches Formular mit Feldern für Personaldaten.

Ich möchte den kompletten Datensatz einer Person in die Felder dieses Formulars laden, wenn man in der linken Liste eine bestimmte Person auswählt. Es müsste ja somit permanent geprüft werden, ob links eine Auswahl erfolgt, und wenn ja, das rechte Formular mit den Feldinhalten aus der Datenbank zur entsprechenden Person neu geladen werden. Riecht, für mich als "Anfänger", danach als dass ich um beide Bereiche eine WHILE-Schleife packen müsste.

Aber da gibt es bestimmt noch bessere Lösungen, oder?

Bin für jede Anregung dankbar.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Tipps zur Programmaufbau

Beitrag von cloidnerux » Mi Mai 06, 2015 3:36 pm

Was du suchst ist Event-basierte Programmierung. Statt zu warten, ob etwas passiert, definierst du dir eine Funktion die Aufgerufen wird, wenn etwas passiert.
Im bereich der Webentwicklung geht das Richtung Javascript und AJAX im Zusammenhang mit php.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Ralfnator
Beiträge: 8
Registriert: Fr Apr 17, 2015 6:13 pm

Re: Tipps zur Programmaufbau

Beitrag von Ralfnator » Fr Mai 08, 2015 8:53 am

Ok, danke. Das hab ich inzwischen hinbekommen. Nun ergibt sich allerdings eine weitere Frage, was ein sinnvoller Aufbau wäre.

Der Inhalt eines Formulars wird per ACTION durch eine *.php an eine SQL-Datenbank übergeben. Dadurch wird allerdings eine leere, weiße Seite bei Anklicken angezeigt. Wie erreiche ich es, dass als ACTION nicht nur das Übergabeskript an die DB aufgerufen wird, sondern auch zur Ausgangsseite zurückgekehrt wird? 2 ACTION-Definitionen sind ja nicht möglich.

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Tipps zur Programmaufbau

Beitrag von canlot » Fr Mai 08, 2015 3:10 pm

Entweder du benutzt eine Weiterleitung nachdem du das Script ausgeführt hast mit header("location: ...") in php oder du hast nur das Hauptausführscript(index) und da packst du halt alle Sachen die du brauchst, das Formular wird wieder an das Hauptscript(index) gesendet und wird dort auch ausgewertet. Die letzte Methode ist die elegantere, weil das springen zwischen verschiedene Seiten entfällt, sie wird meines Wissens auch von den meisten ernst zunehmenden Php-Entwicklern genutzt.
Unwissenheit ist ein Segen

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Tipps zur Programmaufbau

Beitrag von Xin » Sa Mai 09, 2015 11:43 am

Nicht nur das Springen darf man gerne vermeiden, es ist auch sinnvoll die Seite zu verändern: beispielsweise mit der Information, ob die "Action" erfolgreich war.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Ralfnator
Beiträge: 8
Registriert: Fr Apr 17, 2015 6:13 pm

Re: Tipps zur Programmaufbau

Beitrag von Ralfnator » Sa Mai 09, 2015 7:00 pm

Hey Ihr,

stehte grade echt aufm Schlau und habe im Netz auch nicht dazu gefunden.

Ich lese einen Datensatz in ein Formular ein. Bei allen Textfeldern funktioniert das. Aber ich schaffe es nicht, den Wert einer 4-fachen Radiobutton-Auswahl aus SQL in den Radiobutton so einzulesen, da der korrekte Button angeklickt ist.

Wie müsste der Codeschnipsel aussehen?

Danke.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Tipps zur Programmaufbau

Beitrag von Xin » Sa Mai 09, 2015 8:10 pm

Ralfnator hat geschrieben:Ich lese einen Datensatz in ein Formular ein. Bei allen Textfeldern funktioniert das. Aber ich schaffe es nicht, den Wert einer 4-fachen Radiobutton-Auswahl aus SQL in den Radiobutton so einzulesen, da der korrekte Button angeklickt ist.

Wie müsste der Codeschnipsel aussehen?
Zunächst siehe hier.

Du wirst in einer $Variable ja den Wert der Radio-Buttons stehen haben. Du musst in Deinem PHP-Skript jetzt also herausfinden, welcher Radio-Button gedrückt ist, also checked='checked' beinhalten soll.

Code: Alles auswählen

<input type="radio" id="mc" name="Zahlmethode" value="Mastercard" <? if( $Variable == "Mastercard" ) echo ''checked="checked"' ?>><label for="mc"> Mastercard</label><br>
usw...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Ralfnator
Beiträge: 8
Registriert: Fr Apr 17, 2015 6:13 pm

Re: Tipps zur Programmaufbau

Beitrag von Ralfnator » Sa Mai 09, 2015 8:17 pm

Habs inzwischen selbst gelöst. Dummer Denkfehler. Trotzdem danke.

Ralfnator
Beiträge: 8
Registriert: Fr Apr 17, 2015 6:13 pm

Re: Tipps zur Programmaufbau

Beitrag von Ralfnator » Mo Mai 11, 2015 8:09 am

So, jetzt stehe ich bei Javascript auf dem Schlauch. Ich denke, ich übersehe einen kleinen Fehler und bitte mal um eure Augen. IE wirft bei Debuggen den Fehler aus "tax ist undefiniert". Das script zur Funktion "tax" steht allerdings in der gleichen Datei new_customer.html. Ich verstehe es nicht.

Code: Alles auswählen

<script type="text/javascript">

function tax(staff)
{
	if (staff=="true" OR staff=="true" OR staff=="true" OR staff=="true") 
	{
		document.getElementbyId("tax_field").style.display = "";
	}	else
	{
		document.getElementById("tax_field").style.display = "none";
	}
	return;
}
</script>
.......
<li>
			<label class="description" for="skills">Befähigungen</label>
			<input type="hidden" id="hidden_new_staticline" name="lehrer" value="false"> 
			<input type="checkbox" id="new_staticline" name="lehrer" value="true" onclick="tax(checkbox.value)"> 
				<label for="new_staticline">konv. Lehrer</label> 
			<input type="hidden" id="hidden_new_aff" name="aff" value="false"> 
			<input type="checkbox" id="new_aff" name="aff" value="true" onclick="tax(checkbox.value)"> 
				<label for="new_aff">AFF-Lehrer</label> 
			<input type="hidden" id="hidden_new_tandemmaster" name="tdm" value="false">
			<input type="checkbox" id="new_tandemmaster" name="tdm" value="true" onclick="tax(checkbox.value)"> 
				<label for="new_tandemmaster">Tandemmaster</label> 
			<input type="hidden" id="hidden_new_cam" name="kamera" value="false">
			<input type="checkbox" id="new_cam" name="kamera" value="true" onclick="tax(checkbox.value)"> 
				<label for="new_cam">Kameraspringer</label> 
			</li>
			<li id="tax_field" style="display:none">
			<label class="description" for="tax">Steuernummer</label>
			<input id="tax" name="tax_number" class="textbox_medium" value="" type="text">
			</li><li id="tax_field" style="display:none">
			<label class="description" for="tax">Steuernummer</label>
			<input id="tax" name="tax_number" class="textbox_medium" value="" type="text">
			</li>
Es geht darum, dass in einem Formular ein Textfeld eingeblendet wird, wenn mindestens eine der 4 Checkboxen gecheckt ist.

Danke schon mal im Voraus.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Tipps zur Programmaufbau

Beitrag von cloidnerux » Mo Mai 11, 2015 8:39 am

Was ist das denn für ein Konstrukt:

Code: Alles auswählen

if (staff=="true" OR staff=="true" OR staff=="true" OR staff=="true"
Ansonsten: Hast du es schon mal in Chrome/FF getestet? Gibt dir IE eine Position im Code an, an der es tax nicht mehr erkennt.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten