kasten: Datenübertragen per Formular

Guten Tag.

Ich habe folgendes Problem. Ich habe ein Formular erstellt, mit dessen Hilfe mir die Daten in die Datenbank eingeschrieben werden.

Drücke ich den Button "Daten eintragen", so werden alle Daten wie sie sollen in die Datenbank eingeschrieben.

Da ich jedoch einen Test gecodet habe, soll nach bestimmter Zeit der Test gespeichert werden. Das klappt auch. Nur wenn ich jetzt mithilfe des Javascripts diesen Test abspeichern möchte, werden alle Daten aus dem Formular wie sie sollen in der Datenbank abgespeichert, bis auf eines. Umzwar das Feld fragen. Da wird irgendwie die Variable nicht übernommen und ich verstehe nicht warum. Weil klicke ich manuell auf den Button, so funktioniert ja alles... nur wenn ich ihn vom Javascript aufrufen lassen klappt es nicht... da ist doch keine Logik dahinter.

Kann mir bitte einer sagen woran das liegt? Hier ist das Script.

---------------------------------------------------------------
Template: fragen.tpl
---------------------------------------------------------------
$header
<script type="text/javascript">
<!--

var intMinuten  = $bearbeitungszeit;
var intSekunden = $bearbeitungszeit;
var intHalf     = $ur_bearbeitungszeit / 2;

function countdown(){
  document.getElementById('timerID').innerHTML = intSekunden;
  intSekunden--;
  if(intSekunden == intHalf){
  window.alert('Dir bleiben noch ' + intSekunden + ' Sekunden Zeit!');
  }
  if(intSekunden >= 0){
  window.setTimeout("countdown()", 1000);
  }else{
  window.alert('Der CM-Test ist zu Ende und wird gespeichert!');
  document.frmForm1.Speichern.click();
  }
}
-->
</script>
<body onload="countdown();">

<form action="$dateiname" name="frmForm1" method="post">
 <table style="width:100%;border: 1px solid #000000" border="0" cellpadding="5" cellspacing="1" align="center">
   <tr>
    <td class="tabletitle" colspan="2"><font size="5"><center><b>CM-Examen Fragen</center></font></b><br><center><b>Verbleibende Zeit: <span id="timerID">Sekunden zeit.</span> Sekunden</b> </center></td>
   </tr>
   <tr>
    <td colspan="2"><hr></td>
   </tr>
    $fragen_ausgabe
   <tr>
    <td class="tabletitle" colspan="2"><center><input type="submit" class="submit" value="Test abschließen" name="Speichern"></center></td>
   </tr>
 </table>
</form>
</body>
$footer
---------------------------------------------------------------

*****************************************************************
*****************************************************************

---------------------------------------------------------------
fragen.php
---------------------------------------------------------------

if(isset($_POST['Speichern']) || isset($_POST['submit']))
    {
        // Frage Speichern
        $count = 1;
        $zahl = $limit + 1;
        while($count < $zahl)
        {
            $antwort    = 'antwort_'.$count;
            $antwort   = $_POST[$antwort];
            $frage     = 'frage_'.$count;
            $frage    = $_SESSION[$frage];
           $eintragen   = $db->query("INSERT INTO ".$prefix."antworten ( antwort , frage , fragen\_id , id , user , ip) VALUES ('$antwort', '$frage', '$count', '', '$benutzer', '$ip')") or die(mysql_error());
            $count++;
  echo $frage;
  echo '<br>';
  echo $antwort;
  echo '<br>';
  echo '<br>';
        }
        // Frage Auswerten
        $count  = 1;
        $zahl = $limit + 1;
        $a      = 0;
        while($count < $zahl)
        {
        $result = $db->query("SELECT * FROM ".$prefix."antworten WHERE user = '".$benutzer."' AND fragen_id='".$count."'") or die(mysql_error());
        $row    = $db->fetch_array($result);
            $frage       = $row['frage'];
            $antwort       = $row['antwort'];
            $sql      = $db->query("SELECT * FROM ".$prefix."fragen WHERE id = '".$frage."'") or die(mysql_error());
            $r    = $db->fetch_array($sql);
            $richtige_antwort=$r['richtige_antwort'];
  if ($richtige_antwort==0) $richtige_antwort='3';
            if($antwort == $r['richtige_antwort'])
            {
                $a      = $a+1;
            }
            $count++;
  //echo 'frage:'.$frage.'<br>';
  //echo 'antwort:'.$antwort[$count].'<br>';
  //echo 'Richtige Antwort:'.$r['richtige_antwort'].'<br>';
  //echo 'Punktzahl:'.$a.'<br><br>';

}
etc....
---------------------------------------------------------------
****************************************************************

Dankeschön schon im Voraus.

MfG
kasten

  1. bis auf eines. Umzwar das Feld fragen. Da wird irgendwie die Variable nicht übernommen und ich verstehe nicht warum.

    im Template gibts kein solches Feld. Falls es per PHP reingefummelt wird, wäre es nett von dir, uns das Ergebnis-HTML zu zeigen ... nicht jeder hier hat einen PHP-Compiler im Kopf.

    document.frmForm1.Speichern.click();

    Formulare werden per submit() abgeschickt, wenns denn JS sein muss.

    Gruß
    MrWurf

    1. bis auf eines. Umzwar das Feld fragen. Da wird irgendwie die Variable nicht übernommen und ich verstehe nicht warum.

      im Template gibts kein solches Feld. Falls es per PHP reingefummelt wird, wäre es nett von dir, uns das Ergebnis-HTML zu zeigen ... nicht jeder hier hat einen PHP-Compiler im Kopf.

      document.frmForm1.Speichern.click();

      Formulare werden per submit() abgeschickt, wenns denn JS sein muss.

      Gruß
      MrWurf

      Entschuldigung ;d ich poste mal die gesammte fragen.php Dann wird sich das wohl klären ;D

      mfg
      kasten

      <?php
          ob_start();
       session_cache_expire(1);
       session_start();

      if($_SESSION['cm_userName'] == '' OR  $_SESSION['cm_userId'] == ''){
          header('location: index.php');
          exit;
      }
          require('./global.php');
          $query= $db->query("SELECT * FROM ".$prefix."admin_einstellungen WHERE id='4'") or die(mysql_error());
          $row = $db->fetch_object($query);
          $limit   = $row->funktion;

      $query= $db->query("SELECT * FROM ".$prefix."admin_einstellungen WHERE id='1'") or die(mysql_error());
      $row = $db->fetch_object($query);
          $day   = date("d",$row->funktion);
          $month = date("n",$row->funktion);
          $year  = date("Y",$row->funktion);
          $hour  = date("H",$row->funktion);
          $min   = date("i",$row->funktion);
          $sec   = date("s",$row->funktion);

      if(isset($_POST['Speichern']) || isset($_POST['submit']))
          {
              // Frage Speichern
              $count = 1;
              $zahl = $limit + 1;
              while($count < $zahl)
              {
                  $antwort    = 'antwort_'.$count;
                  $antwort   = $_POST[$antwort];
                  $frage     = 'frage_'.$count;
                  $frage    = $_SESSION[$frage];
                 $eintragen   = $db->query("INSERT INTO ".$prefix."antworten ( antwort , frage , fragen\_id , id , user , ip) VALUES ('$antwort', '$frage', '$count', '', '$benutzer', '$ip')") or die(mysql_error());
                  $count++;
        echo $frage;
        echo '<br>';
        echo $antwort;
        echo '<br>';
        echo '<br>';
              }
              // Frage Auswerten
              $count  = 1;
              $zahl = $limit + 1;
              $a      = 0;
              while($count < $zahl)
              {
              $result = $db->query("SELECT * FROM ".$prefix."antworten WHERE user = '".$benutzer."' AND fragen_id='".$count."'") or die(mysql_error());
              $row    = $db->fetch_array($result);
                  $frage       = $row['frage'];
                  $antwort       = $row['antwort'];
                  $sql      = $db->query("SELECT * FROM ".$prefix."fragen WHERE id = '".$frage."'") or die(mysql_error());
                  $r    = $db->fetch_array($sql);
                  $richtige_antwort=$r['richtige_antwort'];
        if ($richtige_antwort==0) $richtige_antwort='3';
                  if($antwort == $r['richtige_antwort'])
                  {
                      $a      = $a+1;
                  }
                  $count++;
        //echo 'frage:'.$frage.'<br>';
        //echo 'antwort:'.$antwort[$count].'<br>';
        //echo 'Richtige Antwort:'.$r['richtige_antwort'].'<br>';
        //echo 'Punktzahl:'.$a.'<br><br>';

      }
                   $query=
                   "UPDATE ".$prefix."cm\_users SET
                   ergebnis   = '".$a."'
                   WHERE
                   user       = '".$benutzer."' ;";
                   $db->query($query) or die(mysql_error());

      //header("Location: logout.php");
         //exit;

      }

      $query= $db->query("SELECT * FROM ".$prefix."admin_einstellungen WHERE id='3'") or die(mysql_error());
      $row = $db->fetch_object($query);
      $bearbeitungszeit = $row->funktion *60;
      $ur_bearbeitungszeit = $bearbeitungszeit;

      $time = $bearbeitungszeit;
          $c = 0;
          $sql = $db->query("SELECT * FROM ".$prefix."fragen\_sicherheitsspeicher WHERE user = '".$benutzer."'");
          if ($db->num_rows($sql)==0){
            $sql = $db->query("SELECT * FROM ".$prefix."fragen ORDER BY RAND() LIMIT ".$limit."");
            while($result = $db->fetch_array($sql))
            {
                $c++;
                $_SESSION['frage_'.$c.''] = $result['id'];
                $fragen_id                = $result['id'];

      //Fragen sicherheitspeicherung
                   $eintragen   = $db->query("INSERT INTO ".$prefix."fragen\_sicherheitsspeicher ( id , fragen\_id , user , frage\_id) VALUES ('', '$fragen_id' , '$benutzer', '$c')") or die(mysql_error());
                $frage                    = $result['frage'];
                $antworten                = array(
                                                  $result['antwort_1'],
                                                  $result['antwort_2'],
                                                  $result['antwort_3'],
                                                  $result['antwort_4']);
                srand((float)microtime() * 1000000);
                shuffle($antworten);
                eval ("$fragen_ausgabe .= "".gettemplate("fragen_ausgabe")."";");
            }
            //Testbeginn eintragen
            $user_testbeginn = time();
            $eintragen   = $db->query("INSERT INTO ".$prefix."user\_testbeginn ( username , testbeginn) VALUES ('$benutzer', '$user_testbeginn')") or die(mysql_error());
          }
          elseif ($db->num_rows($sql)!=0){
            $sql = $db->query("SELECT * FROM ".$prefix."user\_testbeginn WHERE username = '".$benutzer."'");
       $result = $db->fetch_array($sql);
       $testbeginn= $result['testbeginn'];
       $zeit = time()-$testbeginn;
       $ur_bearbeitungszeit = $bearbeitungszeit;
       $bearbeitungszeit = ($bearbeitungszeit)-$zeit;
            $sql = $db->query('SELECT a. * , b. * FROM '.$prefix.'fragen\_sicherheitsspeicher a LEFT JOIN '.$prefix.'fragen b ON a.fragen_id = b.id WHERE a.user = ''.$benutzer.'' ORDER BY a.frage_id');
            while($result = $db->fetch_array($sql))
            {
                $c++;
                $_SESSION['frage_'.$c.''] = $result['id'];
                $frage                    = $result['frage'];
                $antworten                = array(
                                                  $result['antwort_1'],
                                                  $result['antwort_2'],
                                                  $result['antwort_3'],
                                                  $result['antwort_4']);
                srand((float)microtime() * 1000000);
                shuffle($antworten);
                eval ("$fragen_ausgabe .= "".gettemplate("fragen_ausgabe")."";");
            }
          }
          eval ("printtemplate("".gettemplate("fragen")."");");

      ?>