Aufstellungsscript , Abspeichern?

DonDemf

Erfahrenes Mitglied
Hallo Leute,
dank der Hilfe eines netten JSers hier im Forum habe ich es nun realisiert, das mir ein Spielfeld mit Javascript angezeigt wird, wobei wenn man die Aufstellung ändert, die Drop-Downs sich ebenfalls ändern.

Die Standartaufstellung jedes users wird in der Tabelle "_mannschaften" in der spalte "aufstellung". gespeichert und ausgelesen. Jede Mannschaft hat auch eine spalte "trainer".

Wenn ein Trainer nun die "kader-Seite" aufruft, erscheint seine aufstellung. Diee identifiziere ich durch die spalte "aufstellung" in der Tabelle "_mannschaft" (jeder user hat ja eine individuelle mannschaft)

Nun lasse ich in jedem DropDown alle Spieler auflisten die im kader des trainers sind --> soweit kein Problem.

Aber jetzt komme ich an ein gedankliches ende.
Irgendwie muss ich nun ja die spieler die im Dropdown auswählt sind speichern, so dass man beim neuladen der seite wieder die augewählten Spieler auf den entsprechenden positionen wiederfindet. ich habe jedoch keine genaue Ahnung wie ich es realisieren soll.


Meine Seite: http://fifaplace.pytalhost.com/fifaliga/viewpage.php?page_id=51


Wäre nett wenn jemand weiterhelfen würde ;-)
 
Nun, Du hast Deine Spielpositionen, die sind durchnummeriert. Ob nun (1-)4-4-2 oder (1-)4-5-1. Du erstellst also eine Spielerliste, wo Eintrag 1 der Torwart AAA (id 123) ist, Eintrag 2 Spieler XX (id 234) etc pp. Das führt natürlich zu "möglicherweise" eigenartigen Aufstellungen, wenn man das Spielsystem ändert. ABER Du hast mit Spielsystem und Liste eine reproduzierbare, sprich speicherbare und wiederaufrufbare Aufstellung.

mfg chmee
 
Zuletzt bearbeitet:
ok, ich werde es mal austesten, bin jedoch gerade an einem anderen problem...

und zwar lasse ich nun in jedem DropDown alle Spieler auslesen:

beispiel für einen Div-tag:

PHP:
$spieler = 'SELECT id, vorname, name FROM fifa_spieler WHERE verein = "'.$userdata["team"].'"';
$spieler2 = mysql_query($spieler);

echo '<div id="tor" style="position: absolute; left: 213; top: 596; z-index: 1;">
  <select name="tor" size="1">';
   mysql_data_seek($spieler2,0);
    while($rowst= mysql_fetch_object($spieler2))
   {
   echo '<option value="'.$rowst->name.'">'.$rowst->name.'</option>';
   $bild = $rowst->id;
   }
	echo '</select>
</div>';

und möchte nun zum ausgewählten Spieler, dass passende Bild anzeigen lassen. Die bilder sind nach den ids benannt:

PHP:
<img src="image/spieler/'.$bild.'.jpg" width="50" height="70">

Leider zeigt er mir immer nur das Bild an mit der id 2568 und nicht das ausgewählte...
 
Du arbeitest in php. Wenn das HTML-Script im Browser ankommt, ist die Variable $bild natürlich schon eindeutig gesetzt und kann nicht mittels Dropdown geändert werden. Weiterer Gedankenfehler ist, Du beschreibst die $bild-Variable jeden Durchgang der while()-Schleife, somit ist auch logisch, dass der letzte ausgelesene Wert stehenbleibt.

Das Bild-Problem lässt sich lösen, wenn Du Deine erste Frage gelöst hast, momentan schiebst Du ja alle Spieler eines Vereins in das Dropdown, ohne Filterung oder Positionierung.

mfg chmee
 
Also eigentlich möchte ich realisieren, dass immer das Bild des aktuell ausgewählten Spielers im Dropdown angezeigt wird. Mit jquery oder so sollte s doch gehen oder? leider kenne ich mich damit nicht aus.
 
Du hast doch die Möglichkeit, die id des Spielers im value-Attribut mitzugeben. Mach das doch..

http://jsfiddle.net/XJyJW/

und benutz diese dann per Javascript/jQuery, um das Bild zu aktualisieren. Wenn Du id und Name im value-Feld brauchst, dann schreibst Du beide mit Trennersymbol ein und zerlegst es nach dem Auslesen wieder in zwei Werte.

http://jsfiddle.net/XJyJW/2/
HTML:
<form>
    <select id="spieler">
            <option value="11|chmee">chmee</option>
            <option value="13|DonDemf">DonDemf</option>
            <option value="238|tutorials">tutorials</option>
        </select>
</form>
<div id="idausgabe"></div>
<div id="namenausgabe"></div>
Code:
$("#spieler").change(
    function(){
        var sid = $("#spieler").val();
        var data = sid.split("|");
        $("#idausgabe").html(data[0]);
        $("#namenausgabe").html(data[1]);
    }
);

mfg chmee
 
ok, wenn ich dich richtig verstanden habe, dann:

Habe ich ein code-Teil für das DropDown mit dem select name="tor" erstellt:
Code:
$("#tor").change(
    function(){
        var sid = $("#tor").val();
        var data = sid.split("|");
        $("#idausgabe").html(data[0]);
        $("#namenausgabe").html(data[1]);
    }
);

und anschließend mein selectfeld/while shcleife so abgeändert:
PHP:
while($rowst= mysql_fetch_object($spieler2))
   {
   echo '<option value="'.$rowst->id.'">'.$rowst->name.'</option>';
   $bild = $rowst->id;
   }

und die div tags eingefügt:
Code:
<div id="idausgabe"></div>
<div id="namenausgabe"></div>

Leider tut sich da dennoch nichts...
 
(a) jQuery muß natürlich eingebunden sein.
(b) Schau Dir das Beispiel nochmal genau an. Ich habe beide (!) Daten in das value-Attribut eingetragen und per | trennbar gemacht, damit der .split in javascript auch etwas zu tun hat..
(c) Die $bild-Variable (Zeile) kannst Du getrost löschen, weil sie (1) eh keinen Sinn macht und (2) die relevante Info (id) nun im value steht, welche ausgelesen wird und dann als src-Data einem img-tag zugeführt wird.

mfg chmee
 
handelt es sich beim einbinden des jquery um diese date:

Code:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
****?

und ist der <form>-Tag wichtig? den habe ich nämlich gar nicht drin.

Ich werde nun beide value werte eintragen und mit | trennen.

dann melde ich mich nochmal.

Danke für deine Geduld.
 
PHP Datei:

PHP:
echo '<div id="tor" style="position: absolute; left: 213; top: 596; z-index: 1;">
  <select name="tor" size="1">';
   mysql_data_seek($spieler2,0);
    while($rowst= mysql_fetch_object($spieler2))
   {
   echo '<option value="'.$rowst->id.'|'.$rowst->name.'">'.$rowst->name.'</option>';
   }
    echo '</select><br />
	<div id="idausgabe"></div>
<div id="namenausgabe"></div>';


aufstellung.js:
Code:
window.onload = function() {
    formation("4-1-2-1-2")//Default
};
var all = {
    "4-1-2-1-2": {
        x: [33, 145, 274, 392, 215, 378, 50, 215, 313, 116],
        y: [501, 501, 501, 501, 409, 325, 325, 251, 153, 153]
    },
    "4-3-3": {
        x: [33, 145, 274, 392, 212, 365, 54, 212, 392, 35],
        y: [501, 501, 501, 501, 348, 315, 315, 128, 143, 143]
    },
	"4-3-1-2": {
        x: [33, 145, 274, 392, 212, 365, 54, 212, 329, 94],
        y: [501, 501, 501, 501, 348, 315, 315, 226, 125, 125]
    },
	"4-3-2-1": {
        x: [33, 145, 274, 392, 212, 365, 54, 212, 344, 79],
        y: [501, 501, 501, 501, 348, 315, 315, 128, 171, 171]
    }
    //usw.
};
function formation(form) {
    var pos = all[form];
 
    for (var $a = 1; $a < 12; $a++) {
        document.getElementById("s" + $a).style.left = pos.x[$a-1];
        document.getElementById("s" + $a).style.top = pos.y[$a-1];
    }
}
$("#tor").change(
    function(){
        var sid = $("#tor").val();
        var data = sid.split("|");
        $("#idausgabe").html(data[0]);
        $("#namenausgabe").html(data[1]);
    }
);

immernoch nicht das gewünschte resultat.

Jquery ist standartmäßig bei PHP-Fusion includiert.
 
Zurück