Zum Inhalt springen

Javascript: Wie kann ich ein Auswahlmenüs verändern?


DFBL-Benjamin

Empfohlene Beiträge

Ich habe ein Formular, wo verschiedene Punkte ausgefüllt werden müssen.

Wenn man jetzt Heimmannschaft und Gastmannschaft ausgefüllt hat, soll bei einem Auswahlmenü, der Name der Heim- und Gastmannschaft bei dem richtigen Auswahlpunkt erscheinen.

Wie muss ich sowas programmieren?

Ich wollte es so machen:


<html>
<head>
<script type="text/javascript">
function aendern(obj)
{
var gast = document.formular.gast.selectedIndex;
var heim = document.formular.heim.selectedIndex;
alert("Es wurde das Objekt geändert! heim - gast");
}
</script>
</head>
<body>
<form action='$PHP_SELF' method='POST' name='formular'>

Heimmannschaft:
<select name="heim">
<option name='1'>Verein A
<option name='2'>Verein B usw.
</select>

Gastmannschaft:
<select name="gast" onChange="aendern(this);">
<option name='1'>Verein A
<option name='2'>Verein B usw.
</select>

Spielgemeinschaft:
<select name="sg_mann">
<option name='1'>Heimmannschaft // Hier soll dann noch der Heim-Verein stehen
<option name='2'>Gastmannschaft // Hier soll dann noch der Gast-Verein stehen
<option name='3'>Beide Mannschaften // Hier soll dann beide Vereine stehen
<option name='4'>Keine Mannschaft
</select>

<input type='Submit' value='Absenden' name='ueberpruefung_spieldaten'>
</form>
</body>
</html>
[/PHP]

stimmt meine eingebauten Javascript-Befehle überhaupt, die ich an die Stellen plaziert habe?

Beispiel:

Heimmannschaft: Verein B (wurde ausgewählt!)

Gastmannschaft: Verein Z (wurde ausgewählt!)

Jetzt muss die Auswahlpunkt geändert werden.

Spielgemeinschaft:

Auswahlpunkt 1: Heimmannschaft SG Verein B

Auswahlpunkt 2: Gastmannschaft SG Verein Z

Auswahlpunkt 3: Beide Mannschaften SG Verein B - SG Verein Z

Auswahlpunkt 4: Keine Mannschaft

So sollte das Verzeichnis dann aussehen als Verein soll dann der Name des Vereins stehen.

Ich hoffe, so ist die Beschreibung OK, sonst einfach nachfragen!

Danke schon mal für die Antworten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

try this:

<html>

<head>

<title>Mannschaft</title>

<script type="text/javascript">

<!--

function aendern(obj)

{

  var strHeimSelectedText = document.formular.heim.options[document.formular.heim.selectedIndex].text;

  var strGastSelectedText = document.formular.gast.options[document.formular.gast.selectedIndex].text;

  document.formular.sg_mann.options[0].text = "Heimmannschaft " + strHeimSelectedText;

  document.formular.sg_mann.options[1].text = "Gastmannschaft " + strGastSelectedText;

  document.formular.sg_mann.options[2].text = strHeimSelectedText + ", " + strGastSelectedText;

//alert("Es wurde das Objekt geändert! heim - gast");

}

-->

</script>

</head>

<body>


<form action='$PHP_SELF' method='POST' name='formular'>


Heimmannschaft:

<select name="heim">

  <option name='1'>FSV Luckenwalde</option>

  <option name='2'>FC Baruth</option>

</select>


Gastmannschaft:

<select name="gast" onChange="aendern(this);">

  <option name='1'>TSV Ober-Erlenbach</option>

  <option name='2'>FC Teupitz</option>

</select>


Spielgemeinschaft:

<select name="sg_mann">

  <option name='1'>Heimmannschaft</option> <!--// Hier soll dann noch der Heim-Verein stehen-->

  <option name='2'>Gastmannschaft</option> <!--// Hier soll dann noch der Gast-Verein stehen-->

  <option name='3'>Beide Mannschaften</option> <!--// Hier soll dann beide Vereine stehen-->

  <option name='4'>Keine Mannschaft</option>

</select>


<input type='Submit' value='Absenden' name='ueberpruefung_spieldaten'>

</form>

</body>

</html>

by mk

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das funktioniert auch, aber wenn ich jetzt das Formular absende und die Daten Ok sind, werden diese nochmal ausgegeben zur Kontrolle. Wenn man jetzt auf Korrigieren geht, dann wird das Formular, wo man die Heim- und Gastmannschaft und die Spielgemeinschaft ausgewählt hat, wieder angezeigt, was angegeben wurde.

Wenn ich jetzt den Heim oder Gastmannschaft verändere, dann verändert sich die Reihenfolge der spielgemeinschaft.

Kann ich irgendwie sagen, dass beim Aufruf des Formulares als erstes die Funktion aendern aufgerufen wird?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Auswahlmenü von Spielgemeinschaft würde, wenn man einen Verein verändert so aussehen, wenn man die Korrektur machen würde:

1 Heimmannschaft

2 Heimmannschaft Verein XY

3 Gastmannschaft Verein ZF

4 Beide Mannschaften Verein XY - Verein ZF

Solange ich keine Änderung des Vereins mache, wird das Menü auch richtig angezeigt, wie nachfolgend zu sehen:

1. Heimmanschaft

2. Gastmannschaft

3. Beide Mannschaften

4. Keine Mannschaften

Aber wenn ich jetzt einen Verein ändere, dann gibt es mir das erste Auswahlmenü aus. Aber das ist falsch, aber der Wert der markiert ist stimmt über ein, wie es übergeben wurde, also wenn der 3 Punkt ausgewählt wurde, wird bei der Korrektur halt auch der 3 Punkte angezeigt, bloß halt nach der Änderung des Vereins, eine andere Be*****lung.

ich werde dein Tipp heute Mittag daheim probieren! Dann hoffe ich dass das so klappt wie ich mir das denke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ey sorry, aber selbst nach mehrmaligen lesen kapier ich das problem immernoch nicht

Versteh ich dich richtig:

-User sendet formular ab

-zur sichertheit wird vollständige html seite mit formluar nochmal angezeigt?

is ja ersmal schon ziemlich dämlich aber okay

-dann öndert der user was im menü der heimmannschaft, oder was meinst du mit verein ändern?

- eine andere Be____????

Formulier am besten mal kurze eindeutige Sätze!

Link zu diesem Kommentar
Auf anderen Seiten teilen

also jetzt mal nochmal langsam!

1. User füllt das Formular aus.

a) Wenn er die Heimmannschaft ausfüllt, wird das Feld Spielgemeinschaft aktualisiert mit dem Namen der Heimmannschaft

B) Beim Ausfüllen der Gastmannschaft wird auch das Feld Spielgemeinschaft aktualisiert mit dem Namen der Gastmannschaft

c) Absenden klicken

2. Zur Kontrolle werden die Daten nochmal angezeigt. Da einige dass Formular nicht richtig ausfüllen, landet die Mail wo anders, statt bei der Person X. Deshalb die nochmalige Ausgabe.

3. Wenn man die Eingabe korrigieren möchte, klickt man darauf.

a) Die Eingaben werden angezeigt.

B) Ich habe jetzt noch den Befehl in den Body eingetragen, trotzdem werden die Namen falsch angezeigt.

c) Spielgemeinschafts-Auswahl-Fenster sieht folgendermaßen aus:

Heimmannschaft

Heimmannschaft Verein X

Gastmannschaft Verein Y

Beide Mannschaften Verein X - Verein Y

Warum wird jetzt unter 3 c der Punkt Heimmannschaft 2 x aufgeführt? Beim einen wird der Verein angezeigt beim anderen nicht.

Mein Code:


echo "<html><head>";
echo "<link rel='stylesheet' type='text/css' href='grundgeruest.css'>";
echo "<title>Spielbestätigung im XY</title>";
?>
<script type="text/javascript">
function aendern()
{
var strHeimSelectedText = document.formular.heim.options[document.formular.heim.selectedIndex].text;
var strGastSelectedText = document.formular.gast.options[document.formular.gast.selectedIndex].text;
document.formular.sg_mann.options[1].text = "Heimmannschaft SG " + strHeimSelectedText;
document.formular.sg_mann.options[2].text = "Gastmannschaft SG " + strGastSelectedText;
document.formular.sg_mann.options[3].text = "Beide Mannschaften (siehe Heim/ Gast)";
document.formular.sg_mann.options[4].text = "Keine Mannschaft";
}
</script>

<?php
echo "</head><body onload=\"aendern()\">";

echo "<form action='$PHP_SELF' method='POST' name='formular'>";

echo "<h1>Eingabe der Daten über das zu bestätigende Spiel</h1>";
echo "<br>";


echo "<table border='0' align='center' width='100%'>";
echo "<colgroup>";
echo "<col width='40%'>";
echo "<col width='10%'>";
echo "<col width='50%'>";
echo "</colgroup>";
echo "<tr>";
echo "<th align='right'>Heimmannschaft</th>";
echo "<th align='center'>*</th>";
echo "<td align='left'>";
echo "<select name='heim' onChange=\"aendern();\">";
vereine($heim);
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<th align='right'>Heimmannschafts-Nummer</th>";
echo "<th align='center'></th>";
echo "<td align='left'><input type='text' name='heim_nr' value='$heim_nr' size='2' maxlength='2'></td>";
echo "</tr>";
echo "<tr>";
echo "<th align='right'>Gastmannschaft</th>";
echo "<th align='center'>*</th>";
echo "<td align='left'>";
echo "<select name='gast' onChange=\"aendern();\">";
vereine($gast);
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<th align='right'>Gastmannschafts-Nummer</th>";
echo "<th align='center'></th>";
echo "<td align='left'><input type='text' name='gast_nr' value='$gast_nr' size='2' maxlength='2'></td>";
echo "</tr>";
echo "</table>";
echo "<table border='0' align='center' width='100%'>";
echo "<colgroup>";
echo "<col width='40%'>";
echo "<col width='10%'>";
echo "<col width='50%'>";
echo "</colgroup>";
echo "<tr>";
echo "<th align='right'>Spielgemeinschaft</th>";
echo "<th align='center'>*</th>";
echo "<td align='left'>";
echo "<select name='sg_mann'>";
auswahl_sg($sg_mann);
echo "</select>";
echo "</td>";
echo "</tr>";
echo "</table>";

// Sendeknopft
echo "<p align='center'><input type='Submit' value='Absenden' name='ueberpruefung_spieldaten'></p>";
echo "</form>";
echo "<form action='index2.php' method='post'>";
echo "<p align='center'><input type='Submit' value='Zurück'></p>";
echo "</p>";
echo "</form>";

echo "</body>";
echo "</html>";


// Damit wird beim ersten Aufruf des Formulares, das Feld Spielgemeinschaft erstellt
function auswahl_sg($sg_nr)
{
if($sg_nr == 1)
{
echo "<option value='1' style='font-family:Courier' selected>Heimmannschaft";
echo "<option value='2' style='font-family:Courier'>Gastmannschaft";
echo "<option value='3' style='font-family:Courier'>Beide Mannschaften";
echo "<option value='4' style='font-family:Courier'>Keine Mannschaft";
}
else if($sg_nr == 2)
{
echo "<option value='1' style='font-family:Courier'>Heimmannschaft";
echo "<option value='2' style='font-family:Courier' selected>Gastmannschaft";
echo "<option value='3' style='font-family:Courier'>Beide Mannschaften";
echo "<option value='4' style='font-family:Courier'>Keine Mannschaft";
}
else if($sg_nr == 3)
{
echo "<option value='1' style='font-family:Courier'>Heimmannschaft";
echo "<option value='2' style='font-family:Courier'>Gastmannschaft";
echo "<option value='3' style='font-family:Courier' selected>Beide Mannschaften";
echo "<option value='4' style='font-family:Courier'>Keine Mannschaft";
}
else if($sg_nr == 4)
{
echo "<option value='1' style='font-family:Courier'>Heimmannschaft";
echo "<option value='2' style='font-family:Courier'>Gastmannschaft";
echo "<option value='3' style='font-family:Courier'>Beide Mannschaften";
echo "<option value='4' style='font-family:Courier' selected>Keine Mannschaft";
}
else
{
echo "<option>";
echo "<option value='1' style='font-family:Courier'>Heimmannschaft";
echo "<option value='2' style='font-family:Courier'>Gastmannschaft";
echo "<option value='3' style='font-family:Courier'>Beide Mannschaften";
echo "<option value='4' style='font-family:Courier'>Keine Mannschaft";
}
}
[/PHP]

Warum wird das Auswahl-Verzeichnis erst beim zweiten Mal falsch ausgegeben und nicht gleich beim erstehen mal?

Link zu diesem Kommentar
Auf anderen Seiten teilen

au au au aua

genauso wie dein coding styl is, hab ich vor einiger zeit auch gecodet, dass is total schrott, schlecht zu lesen. schon mal was von MVC [Modell View Controller] gehört?

ersmal solltest du alle echos weglassen, wo sie nicht benötigt werden, sprich allen statischen html-kram ohne php-echo stehen lassen, wird als template bezeichnet. dann wäre es ratsam, die php-methoden, die für die Ausgabe der Vereine zuständig sind, was ja in jedem Fall schonmal gut is (Modell), nur die Vereine ausgeben zu lassen und nicht noch den HTML-code dafür, sprich den gesamten konstrukt (inkl HTML-code) lässt du über etwas wie

if (vereine.nextVerein() = true) <html> vereine.getNextVerein() </html>

ausgeben.

glaub mir, wenn du jetzt 2 wochen urlaub machst und keinen gedanken daran verschwendest, brauchst du ersmal einen kompletten tag, um dich wieder einzulesen und die logik zu kapieren *mir gings so*

zu der frage warum doppelt angezeigt: Kann es sein, dass das Array bei 0 (Null) beginnt, statt bei eins?

---------------------------------------------------------------------

oh mann, vielleicht sollte ich doch mal langsam anfangen php zu erlernen

Link zu diesem Kommentar
Auf anderen Seiten teilen

das Problem mit der 0 habe ich so gelöst, dass ich einfach bei jeder Option noch eine leere Option eingefügt habe, dann hat es funktioniert.

Jetzt geht es auf jeden Fall so, wie ich es gerne habe.

Das andere umzustellen, wäre gerade zu viel arbeit, da alle Systeme super laufen. Aber wenn ich mal das generell neu machen sollte, was bestimmt ab Februar der Fall sein wird. Da könnte ich es nach der neuen Form mache.

Aber das mit dem MVC-Modell habe ich noch nicht ganz kapiert, was ich da alles machen muss. Habe die Zeit gerade nicht.

Wie meinst du dass mit dem Verein? Kannst du mir das näher erklären, wie das funktioniert am MVC-Modell, wie du schon angefangen hast.

DANKE!

wo her bekomme ich noch mehr infos über das MVC-Modell her? Du kennst bestimmt super seiten dazu!

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn du eh keine zeit hast...ich werde mal versuchen, dass bis Ende Sonntag in PHP so zu programmieren, wie es am besten wäre, allerdings muss ich mich überwinden, hier zuhause eine umgebung aufzusetzen, wo php funktionier, evtl kannst du mir da einen tipp geben? möglichst so, dass ich nur auf installieren klicken muss und nicht noch irgendwelche angaben machen muss, ob apache oder i-Planet oder tomcat oder struts oder ... *ich hasse das aufsetzen von umgebungen*

Also wenn du nen Tipp für eine lauffähige PHP-Umgebung hast, wo man testen kann, dann bitte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

so mache ich dass auch immer!

andere möglichkeit kenne ich nicht!

was verstehst du unter Projekt?

ich stelle halt alle Datein in das Verzeichnis unterhalb von htdocs rein und starte den Server und die Datenbank, dann teste ich und programmiere.

was anderes kann man damit nicht machen.

was stellst du dir denn noch vor?

PS: Sorry, dass ich solange nicht mehr geschrieben habe, war ziemlich im Streß.

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja, hät ja sein können, dass im setupscreen irgendne möglichkeit gegeben is, das komfortabel als neues projekt anzulegen, aber wenns das nicht gibt, wärs ja mal ne idee son php-skript zu basteln, was in die startseite von xampp integriert is, so von wegen Neues Projekt -> Klick -> Name des Projektes: ______ -> OK -> neue Ordner wird erstellt mit index.php und man sieht dazu noch die index.php im browser mit einigen standard-html-meta-elemten, wo man nur noch seine angaben eintragen muss und die datei editieren kann, mit syntaxhighlighting, so wie es hier beim einfügen von PHP-CODE verwendet wird.

FRAGE: Ist die Implementierung des PHP-CODE-Coloring, die für dieses Forum verwendet wird frei erhältlich? Quasi Open-Source? OpenPHP? Ich hätte dann echt bock, das in javascript umzuwandeln, sodass bei jedem eingegeben zeichen in diesem browserfenster sofort das coloring entsprechend greift...dürfte aber ne menge performance kosten-ach druff geschissn, hauptsache es rockt! bla bla bla

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...