div container einblenden und formular aufrufen

xxxmike

Erfahrenes Mitglied
Hallo zusammen,
um div container per klick zu laden gib es ja mehrere Möglichkeiten, wobei das auch nicht das Problem ist.

ich include über eine div box ein Formular. Nur wenn ich dann das Formular ausfüle und absende, verschwindet die eingeblenete Div Box, was ja auf der einen Seite klar ist, wie kann man sowas lösen? das selbe wäre ja auch, wenn ich einen link in dem inhalt der div box klicke.

hier mal das beispiel

PHP:
<script type="text/javascript" language="JavaScript">
	<!--

function toggleswitch(id) 
{
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('div'+i)) {document.getElementById('div'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}


//-->
	</script>
steht am anfang der seite

so rufe ich die div box auf

PHP:
<a href="#" onclick="toggleswitch('div1');">TEXT</a>


nun die div box

PHP:
echo '
<div id="div1" style="display:none" class="box">';
echo 'ein test';
include ("formular.php");

echo '</div>';

so, bisher alles ohne Probleme, nur kann ich das formular sozusagen nicht absenden, wie kann man sowas lösen?

DANKE für jeden Tipp und Hilfe
 
Hi,

warum sollte sich das Formular "sozusagen" nicht versenden lassen? Wie sieht das eingebundene Formular aus (geparster HTML-Code bitte).

Soll der DIV-Container auf der Seite, in die das Formular gesendet wird, wieder geöffnet sein, könntest du das über ein verstecktes Feld regeln. Dieses liest du beim Laden des Dokuments aus und setzte die Sichtbarkeit (display) des Containers entsprechend.

Ciao
Quaese
 
ja verstecktes feld schon mal super idee. nur was trage ich da genau ein, das ist die frage. aber ich werde das mal testen
 
Hi,

trag doch die ID des Containers in das value-Attribut ein. Wird das Dokument geladen, prüfst du mit PHP, ob der entsprechende Request-Parameter gesetzt ist und bindest gegebenenfalls die benötigte JS-Passage zum Offnen ein.

Beispiel:
Code:
<html>
<head>
<script type="text/javascript">
<!--
function toggleswitch(id){
  var d = document.getElementById(id);
  for (var i = 1; i<=10; i++) {
    if (document.getElementById('div'+i)) {document.getElementById('div'+i).style.display='none';}
  }
  if (d) {d.style.display='block';}
}

<?php
// Falls der Request-Parameter gesetzt ist
if(isset($_REQUEST['open_id'])){
  // Funktion zum Öffnen des Containers im onload-Event aufrufen
  echo("window.onload = function(){ toggleswitch('".$_REQUEST['open_id']."');}");
}
?>
//-->
</script>

</head>
<body>
<div id="outID"></div>

<a href="#" onclick="toggleswitch('div1');">TEXT</a>

<div id="div1" style="display:none" class="box">
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
	<input type="text" name="txtTest" value="test">
	<input type="hidden" name="open_id" value="div1">
	<input type="submit" name="cmdTest" value="cmd_questionmark">
</form>
</div>
</body>
</html>

Ciao
Quaese
 
Zurück