Problem bei Formularfeldern in DIVs

mackattack

Mitglied
Moin...

ich habe hier im Forum eine JavaScript Funktion gefunden, die DIVs ein- bzw. ausblenden kann

PHP:
function swap(targetID) {
  	obj = document.getElementById(targetID);
  	obj.style.display = (obj.style.display == 'none') ? 'block' : 'none';
}

Funktioniert auch echt super! Nur habe ich ein Problem.
Ich lade meine Index.php und im Body-Tag wird per onLoad="swap('Div-Name')" ein Layer ausgeblendet, der per Button wieder eingeblendet wird.
Nun ist es aber so, dass in diesem Layer ein paar Eingabefelder liegen, aber kein komplettes Formular. Es sind quasi zur Zusatzangaben. Das Problem liegt darin, dass die Daten dieser ausgeblendeten Felder nicht mitgesendet werden. Wenn ich auf der nachfolgenden Seite die POST-Daten per print_r($_POST); ausgeben lasse, zeigt er mir nur die Felder an, die nicht in dem betroffenen Layer liegen.

Es wär echt klasse, wenn mir jemand von euch helfen würde.
Ich hab mich hier auch schon dumm und dämlich gesucht, konnte leider nichts entsprechendes finden.
Vielleicht hat ja auch einfach jemand nen Denkanstoss für mich ;).

Besten Dank im Vorraus.
MackAttack
 
Besten Dank für die Antwort :).

Ist dann die Eigenschaft, dass der andere Content nach unten rutscht, durch das position=absolute

Das is nämlich wichtig. ich hatte das vorher schon mit visibility, da war der Layer aber halt nur ausgeblendet.
 
Jo...durch das "absolute" stört der Layer den Rest nicht, wenn er ausgeblendet wird....es wird also kein Platz für ihn reserviert(zumindest nicht dort, wo er bisher war)
Du solltest dem Div eingangs noch die Werte top:0 und left:0 geben
 
Sorry, dass ich so doof frage,
aber kannst du mir vllt nochmal sagen, wo ich die Eigenschaften top:0 und left:0 eintragen sollte? Im DIV selbst? also <div id="divname" top:0 left:0> ? würde mich nämlich wundern, glaube nicht, dass die Doppelpunkte html sind :p.

Und kann ich die Funktion denn genauso nutzen, wie die alte auch? Also bis auf das mit "block" und so, da wäre dann ja "hidden" oder "show", oder?
 
Top und left musst du per CSS definieren:
Code:
<div style="top:0;left:0">

Die Funktion sollte dann so aussehen:
Code:
function swap(targetID) {
      obj = document.getElementById(targetID);
      obj.style.visibility= (obj.style.position == 'absolute') ? 'visible' : 'hidden';
      obj.style.position= (obj.style.position == 'absolute') ? 'relative' : 'absolute';
}
 
Ähm... müsste das nicht in der visibility Zeile so heissen?
Code:
function swap(targetID) {
      obj = document.getElementById(targetID);
      obj.style.visibility= (obj.style.visibility == 'show') ? 'visible' : 'hidden';
      obj.style.position= (obj.style.position == 'absolute') ? 'relative' : 'absolute';
}

oder verdreh ich hier was?
Vielen Dank für deine Hilfe, echt!!
Du bist mein Retter :p
 
Nö....visible ist richtig.
Laut CSS kann die visibility-Eigenschaft hidden oder visible sein.

"show" ist eine Attribut für HTML-Eigenschaft "visibility" von Layern des Netscape4 .... hier soll jedoch die CSS-Eigenschaft geändert werden.
 
Ach... siehste ;)

Das Problem ist jetzt nur, dass zwar das "Auf- und Zuklappen" funktionert, aber es wird irgendwie kein Content des Divs dargestellt. Die Größe kommt auch voll hin, von der Höhe, die verschoben wird, meine ich. Aber es ist halt nur weiss.
 
Ja....wo sind se denn hin, wenn se nich da sind :)
Komisch....was sind das denn alles für Formularfelder, die da ausgeblendet werden sollen?
 
Zurück