2 Formulare zugleich abschicken

<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function submit_all()
{
  t=document.createElement('div');
  t.style.display='none';
  for(i=0;i<document.forms.length;++i)
    {
 
      if(document.forms[i]!=document.getElementById('send'))
        {
          t.appendChild(document.forms[i].getElementsByTagName('div')[0].cloneNode(true));
        }
      else
        {
          t=document.forms[i].appendChild(t.cloneNode(true))
        }
    }
  document.getElementById('send').submit();
  return false;
}
//-->
</script>
</head>
<body>
 
<?php
//Kontrolle der gesendeten Daten 
print_r($_FILES);
print_r($_POST);
?>
 
<form id="send" enctype="multipart/form-data" method="post" onsubmit="return submit_all()"><input type="hidden" name="phpMyAdmin" value="omnWr6jrnJ0Xkj5GYNg3tUj%2C1mf" />
  <div>
    <input name="foobar" type="file">
  </div>
  <input type="submit">
</form>
<form  method="post" onsubmit="return submit_all()"><input type="hidden" name="phpMyAdmin" value="omnWr6jrnJ0Xkj5GYNg3tUj%2C1mf" />
  <div>
    <input name="foo">
  </div>
  <input type="submit">
</form>
<form method="post" onsubmit="return submit_all()"><input type="hidden" name="phpMyAdmin" value="omnWr6jrnJ0Xkj5GYNg3tUj%2C1mf" />
  <div>
    <input name="bar">
  </div>
  <input type="submit">
</form>
 
 
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1691844-1";
urchinTracker();
</script>
</body>
</html>

Wichtig ist dabei:
1. jedes Formular enthält als 1. Kindelement ein < div>….in dieses müssen alle Formularelemente hinein, die immer gesendet werden sollen
2. das Formular, welches das File-Upload-Feld enthält, muss die ID „send“ haben(je nach Browser werden beim clonen nicht die Eingaben in File-Upload-Feldern mitgeclont, deswegen muss immer das Formular mit dem Upload-Feld gesendet werden….bedeutet auch gleichzeitig, dass es nur 1 Formular mit Upload-Feldern geben kann)
3. bei der Benennung der Formularfelder musst du berücksichtigen, dass es nicht gleichnamige Felder geben darf, sonst gehen Daten verloren, da nur das jeweils letzte übermittelt wird.

Hinterlasse eine Antwort