Seite 1 von 2

Tipps zur Programmaufbau

Verfasst: Mi Mai 06, 2015 3:19 pm
von Ralfnator
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.

Re: Tipps zur Programmaufbau

Verfasst: Mi Mai 06, 2015 3:36 pm
von cloidnerux
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.

Re: Tipps zur Programmaufbau

Verfasst: Fr Mai 08, 2015 8:53 am
von Ralfnator
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.

Re: Tipps zur Programmaufbau

Verfasst: Fr Mai 08, 2015 3:10 pm
von canlot
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.

Re: Tipps zur Programmaufbau

Verfasst: Sa Mai 09, 2015 11:43 am
von Xin
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.

Re: Tipps zur Programmaufbau

Verfasst: Sa Mai 09, 2015 7:00 pm
von Ralfnator
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.

Re: Tipps zur Programmaufbau

Verfasst: Sa Mai 09, 2015 8:10 pm
von Xin
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...

Re: Tipps zur Programmaufbau

Verfasst: Sa Mai 09, 2015 8:17 pm
von Ralfnator
Habs inzwischen selbst gelöst. Dummer Denkfehler. Trotzdem danke.

Re: Tipps zur Programmaufbau

Verfasst: Mo Mai 11, 2015 8:09 am
von Ralfnator
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.

Re: Tipps zur Programmaufbau

Verfasst: Mo Mai 11, 2015 8:39 am
von cloidnerux
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.