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
 

Quaese

Moderator
Moderator
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
 

xxxmike

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

Quaese

Moderator
Moderator
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
 

Forum-Statistiken

Themen
272.363
Beiträge
1.558.641
Mitglieder
187.837
Neuestes Mitglied
Kalle P