php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-09-2006, 01:07
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard Dynamisches Dropdown auslesen

So nun habe ich eine echte Nuss zu knacken. Ich sitze an dem Problem bereits seit einigen Tagen und drehe mich im Kreis. Es geht ummer noch um eine Liga, Teams und Spiele. Stellt Euch einfach eine Fussballliga vor.

Es gibt Spieltage, an dem die verschiedenen Teams gegenaneinander antreten. (Weiß jeder)

Ich möchte nun in der Lage sein, Spieltage anzulegen. Dafür habe ich ein Formular das aus lauter Dropdownfeldern besteht. In jedem Dropdown sind alle Teams die zur Liga gehören auswählbar. Man geht nun also jedes Reihe durch und wählt jeweils Heimmanschaft und Gastmanschaft. Wenn am Ende alle Paarungen ausgewählt sind klickt man auf speichern.

So, nun die erste Feinheit. Eine Liga kann 8 Manschaften haben, eine andere nur 4. Bei 8 wären es also 4 Spiele, bei 4 Teams nur 2.

Das Formular muss also dynamisch erstellt werden.

Ich ermittle also erst die Anzahl der Teams und teile das dann durch 2.
Die Anzahl benutze ich in der Schleife, die die Dropdownfelder aufbaut.

PHP-Code:
$countDropdown=0;

for (
$count=0;$count<$AmountTeams;$count++)
{

If (
$row 3)
{
echo 
'<td>';
echo 
'<select name="Match['.$countDropdown.'][LeagueMatches]">';
echo 
$Teams;
echo 
'</select>';
echo 
'</td>';
$row=$row+1;
$countDropdown=$countDropdown+1;
}
else
{    
echo 
'</tr>';
echo 
'<br/>';
echo 
'<tr>';
$row=1;

Ok, danach kommt das Auslesen:

PHP-Code:
for ($i=0$i <count($_POST['Match']);$i++)
{              {
$Match[$i]=$_POST['Match'][$i];
            
$Spiele[$i]=$Match[$i]['LeagueMatches'];

gebe ich jetzt mal $Spiele[$i] aus, bekomme ich alle 4 Werte (bei 4 Teams) angezeigt. So schön so gut. Ich möchte das nun aber in die DB schreiben, wobei im Datensatz jeweils Spieltag, Spielnr, Datum, Heimmanschaft, Gastmanschaft steht.

Ich muss also jeweils 2 zusammengehörige Werte haben (Heimmanschaft, Gastmanschaft)

Doch wie ist das Möglich? Ich habe es damit versucht:

PHP-Code:
for ($k=0$k 1$k++)
{
$Matches[$k]=$Match[$k]['LeagueMatches'];
$Spiel=array("Teams" => array("Home" => "'$Matches[0]'",
              
"Guest" => "'$Matches[1]'"));

Aber es waren am Ende immer alle 4 Werte drinn und kann ich wirklich hoffen dass die Werte alle sauber im Array gelandet sind und ich ohne spezielle Abfrage des Selectfeldes die Werte durchlaufen kann? Ich meine, wenn mal was schief läuft und ich das value vom select Match1 nach Match2 kommt im Array, ich wei? nicht ob das Möglich ist oder nicht, aber wenn dann würde natürlich alles durcheinander kommen. Muss ich also explizit die Felder mit den Namen checken, so dass ich sicher gehen kann das wirklich die richtigen Teams am Ende gegeneinander spielen?

Das ist wirklich knifflig, aber ich hoffe jemand hat einen Ansatz, wie man an so etwas rangeht. Vielen, vielen Dank im voraus. Ihr seit meine letzte grosse Hoffnung.
Mit Zitat antworten
  #2 (permalink)  
Alt 16-09-2006, 02:27
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich denk da wär ne zweite Tabelle "Ligen" sinnvoll
mit dem Namen der Liga als Spaltenname und den Mannschaften
als Inhalt.

So kannst einfach die Anzahl der Mannschaften per sql auslesen (COUNT) und Du kannst beim Auslesen die Dropdownfelder erstellen.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-09-2006, 12:30
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi Koala,

vielen Dank erstmal. Leider hast Du mich aber falsch verstanden. Die Dropdownfelder erhalte ich ja ohne Probleme, ich habe auch bereits eine extra Tabelle Liga incl. Teams in der DB. Das ist nicht das Problem.

Das Problem ist wie ich das abgeschickte Formular auslese, wenn alle Spielpaarungen gewählt sind und diese dann in meine Tabelle Spielpläne reinschreibe. Damit habe ich halt Probleme.

Vielleicht hat noch jemand eine Idee?
Mit Zitat antworten
  #4 (permalink)  
Alt 16-09-2006, 12:40
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

tja - dann schau Dir einfach mal an was Dein Formular
im POST-Array übergibt:

PHP-Code:
echo '<pre>';
print_r($_POST);
echo 
'</pre>'

Geändert von Koala (16-09-2006 um 12:46 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 16-09-2006, 12:44
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Ausgabe sieht etwas komisch aus, gehört aber wohl so:

Array ( [Spieltag] => [Match] => Array ( [0] => Array ( [LeagueMatches] =>
110 ) [1] => Array ( [LeagueMatches] => 109 ) [2] => Array (
[LeagueMatches] => 102 ) [3] => Array ( [LeagueMatches] => 103 ) ) )

Hilft das weiter?
Mit Zitat antworten
  #6 (permalink)  
Alt 16-09-2006, 12:46
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

statt secho muß es in der ersten Zeile natürlich echo heißen.
Poste bitte noch mal das Ergebnis.
Mit Zitat antworten
  #7 (permalink)  
Alt 16-09-2006, 12:50
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh okay, mit echo sieht es so aus:

rray109 109 110 110 102 102 103 103

Die Werte sind also dort bereits doppelt. Interessant.
Mit Zitat antworten
  #8 (permalink)  
Alt 16-09-2006, 12:52
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok - egal.

Wo sind denn in Deinem Formualr die option-Tags?

Normalerweise sieht das so aus:

PHP-Code:
<form name="form1" method="post" action="">
  
sd
  
<select name="select">
    <
option value="1">f1</option>
    <
option value="2">f2</option>
    <
option value="3">f3</option>
  </
select>
</
form
in den values trägst du dann die Mannschaftsnamen ein.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-09-2006, 12:55
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die sind hier:

PHP-Code:
while ($Season mysql_fetch_array($select1))
{
$Teams$Teams.'<option value="'.$Season['TeamID'].'">'.$Season['LeagueTeam'].'</option><br/>';

Ich speichere das also erstmal in die Variable $Teams.
Mit Zitat antworten
  #10 (permalink)  
Alt 16-09-2006, 13:08
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich hab jetzt noch mal Deine älteren Postings durchgelesen.

Ich denk, das müßte schon alles funktionieren.

Vielleicht etwas umständlich, aber das kann ich so schwer beurteilen,
da müßte man das ganze Script kennen.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-09-2006, 13:16
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber ist es denn nicht falsch das wenn ich 4 Teams habe ein solches Array ausgegeben wird ?

Array109 109 110 110 102 102 103 103

es müsste doch einfach nur 109 110 102 103 sein oder nicht?
Mit Zitat antworten
  #12 (permalink)  
Alt 16-09-2006, 14:11
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, jetzt sehe ich gerade, wenn ich echo ($_POST); eingebe bekomme ich nur Array ausgegeben, bei print_r($_POST); bekomme ich


Array ( [Spieltag] => [Match] => Array ( [0] => Array ( [LeagueMatches] =>
110 ) [1] => Array ( [LeagueMatches] => 109 ) [2] => Array (
[LeagueMatches] => 102 ) [3] => Array ( [LeagueMatches] => 103 ) ) )


Wenn ich nun das hier eingebe zum Auslesen:

PHP-Code:
for ($i=0$i <count($_POST['Match']);$i++)
{
$Match[$i]=$_POST['Match'][$i];
echo 
$Match[$i]['LeagueMatches']; 

bekomme ich einfach die 4 Werte angezeigt. Soweit so gut, aber wie geht es danach weiter das ich in die DB jeweils Heim und Gastmanschaft speichern kann?
Mit Zitat antworten
  #13 (permalink)  
Alt 16-09-2006, 14:53
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, neuer Ansatz. Ich werde das jetzt mal so versuchen, dass ich jedes Select Feld einfach so benenne:

<select name="Match1_Team1_Home">
<option value="TeamA">.... </option>
<option value="TeamB">.... </option>
<option value="TeamC">.... </option>
<option value="TeamD">.... </option>
</select>

<select name="Match1_Team2_Gast">
<option value="TeamA">.... </option>
<option value="TeamB">.... </option>
<option value="TeamC">.... </option>
<option value="TeamD">.... </option>
</select>

usw.
Match2_Team1_Home
Match2_Team2_Gast

Es wird ja eine Möglichkeit geben, den Namen des Select Feldes nach dem Abschicken des Formulars auszulesen. Damit könnte ich sicher gehen das alle Werte, die zusammengehören, wirklich zusammenbleiben.

Aber wie sollte ich da wirklich vorgehen? Mir geht es alleine schon darum den richtigen Weg einzuschlagen, bevor ich lange rumspiele und er Weg eh Mist ist.

Jemand eine Idee, ob dieser Weg besser ist?
Mit Zitat antworten
  #14 (permalink)  
Alt 16-09-2006, 15:15
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SO sieht das POST-Array aus:


PHP-Code:
Array ( 
    [
Spieltag] => 
        [
Match] => Array (
             [
0] => Array ( 
                [
LeagueMatches] => 110 
             [
1] => Array ( 
                [
LeagueMatches] => 109 
             [
2] => Array (
                [
LeagueMatches] => 102 )
             [
3] => Array ( 
                [
LeagueMatches] => 103 )
             )
         ) 
In Match[0][LeagueMatches] ist z.B. das erste Select-Feld.

Du hast also 4 (!!!) Select-Felder hintereinander
mit jeweils einem Option-Feld zur "Auswahl"

- wie soll man da was auswählen ???
Mit Zitat antworten
  #15 (permalink)  
Alt 16-09-2006, 15:44
Luka
 Registrierter Benutzer
Links : Onlinestatus : Luka ist offline
Registriert seit: Mar 2004
Beiträge: 215
Luka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, es sind 4 Select Felder, das ist richtig. Ich will ja einen Spielplan erstellen. Also muss ich für die jeweiligen Spielpaarungen ja Dropdownfelder haben. Ich gehe hier also von 4 Teams aus, das bedeutet 2 Spiele, also 4 Dropdownfelder.

Ich habe es jetzt tatsächlich mit dem ersten Ansatz hinbekommen, weiss nur nicht, ob man das wirklich so machen sollte.

Die Lösung für Ansatz 1:

PHP-Code:
for ($i=0$i count($_POST['Match']);$i++)
{
  
$Match[$i]=$_POST['Match'][$i];
            
  
$Array each($Match[$i]); 

  if (
$Auswahl == "Guest")
  {
    
$Home =  $Array[1];
    
$Auswahl="Home"
  }
  else
  {
    
$Guest$Array[1]; 
    
$Auswahl="Guest"
  }


  if (
$Guest != "" && $Home != "")
  {
     
$DBConnection->query("INSERT INTO tblSpielplan
     (MatchNo,HomeTeamID,GuestTeamID) VALUES 
     ('$MatchNo','$Home','$Guest')"
);

     
$Guest="";
     
$Home="";
   } 
Kann man das wirklich so machen oder gibt es eine bessere Lösung?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:49 Uhr.