Zur Navigation

Mysql Formular aktualisiert nicht richtig

1 webuser

Hallo,
in einem Formular werden Termine eingetragen.
Aus einem Pulldown hole ich die Jahreszahl raus.
Ich nehme an, das die Reihefolge des aktulisierens nicht richtig ist.
1)Nach dem Eintragen eines neuen Datums muss ich immer erst das Jahr aktualisieren. Dann kommt die Liste neu.

2)Das Jahr stellt sich nach dem aktulisieren auch immer wieder auf das aktuelle Jahr (nicht auf das selektierte Jahr)

Gruss
Webuser

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>Daten</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="content-language" content="de">
   <meta name="robots" content="no follow">
</head>


<body>
   <h1>Belegung</h1>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">

 <select name="year" id="year">
 <?php
// Jahres-Auswahlliste

$ending_year = date("Y") +1 ; // Anzahl der Jahre
$starting_year = date("Y")-3;

for($starting_year; $starting_year <= $ending_year; $starting_year++) {
    if($starting_year == date('Y')) {
        echo '<option value="'.$starting_year.'" selected="selected">'.$starting_year.'</option>';
    } else {
        echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
    }
}
?>
</select>
    <input type="submit" name="submit" value="submit" />
    </form>
<form method="post">
<table>

        <tr>
                <td>Anreise:</td>
                <td><input type="text" name="Anreise" size="10" maxlength="10"/></td>
        </tr>
        <tr>
                <td>Abreise</td>
                <td><input type="text" name="Abreise" size="10" maxlength="10"/></td>
        </tr>
        <tr>
                <td>Name</td>
                <td><input type="text" name="Name" size="100" maxlength="100" /></td>
        </tr>
        <tr>
                <td>Bemerkung</td>
                <td><input type="text" name="Bemerkung"  size="100" maxlength="100";/></td>
        </tr>
        <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="submit" value="add" /></td>
        </tr>
</table>
<?php
if (isset($_POST['submit']))
        {
        include 'db.php';
         $Anreise ="";
          $Abreise ="";
          $Name="";
          $Bemerkung="";
          $fehler = 0;
          $fehlertext = "";
          $year ="";
          $eventExists="";

          if (isset($_POST["year"])) {  $year=$_POST['year'] ;}
          if (isset($_POST["Anreise"])) {  $Anreise=$_POST['Anreise'] ;}
          if (isset($_POST["Abreise"])) {  $Abreise=$_POST['Abreise'] ; }
          if (isset($_POST["Name"])) {  $Name=$_POST['Name'] ; }
          if (isset($_POST["Bemerkung"])) {  $Bemerkung=$_POST['Bemerkung'] ;}
                     echo"<h1><enter>".$year."</center></h1>";

//Prüfen ob das Datum richtiges Format hat
      If (isset($_POST['Name']) and Trim($_POST['Name']) != "") {
      $d = explode('.', $Anreise);
      if (!checkdate($d[1], $d[0], $d[2]))  { echo '<br /><div style="background-color:green;color:#fff;padding:10px;width:600px;font-size:16px">
        <b>Anreise mit Monat=' . $d[0] . ', Tag=' . $d[1] . ', Jahr=' . $d[2] . ' is not a valid date</b>
        </div>Daten werden nicht gespeichert<br />'; die;   }

      $d = explode('.', $Abreise);
      if (!checkdate($d[1], $d[0], $d[2]))  { echo '<br /><div style="background-color:green;color:#fff;padding:10px;width:600px;font-size:16px">
      <b>Abreise mit Monat=' . $d[0] . ', Tag=' . $d[1] . ', Jahr=' . $d[2] . ' is not a valid date</b>
      </div>Daten werden nicht gespeichert<br />';  die;  }


      $Anreise = date_german2mysql($Anreise);
      $Abreise = date_german2mysql($Abreise)


                 mysql_query("INSERT INTO `belegung`(Anreise,Abreise,Name,Bemerkung)
                 VALUES ('$Anreise','$Abreise','$Name','$Bemerkung')");
                 }

                }
//Datum formatieren
   function date_german2mysql($date) {
    $d    =    explode(".",$date);
     return    sprintf("%04d-%02d-%02d", $d[2], $d[1], $d[0]);
}
?>
</form>
<table  style=width:700px border=1;>

                        <?php
                        include("db.php");
       $year ="";
           if (isset($_POST["year"])) {  $year=$_POST['year'] ;}
    $result=mysql_query("SELECT * , DATE_FORMAT(Abreise, '%d.%m.%Y') as Abreise1, DATE_FORMAT(Anreise, '%d.%m.%Y') as Anreise1 FROM belegung where date_format(Anreise,'%Y') = '{$year}' order by Anreise ");

    echo "<tr><th>Nr</th><th>Anreise</th><th>Abreise</th><th>Name</th><th>Bemerkung</th><th>Edit</th><th>Delete</th></tr>";
                        while($test = mysql_fetch_array($result))
                        {
                                $Id = $test['Id'];
                                echo "<tr align='center'>";
                                echo"<td style=width:30px;><font color='black'>" .$test['Id']."</font></td>";
                                echo"<td style=width:100px;><font color='black'>" .$test['Anreise1']."</font></td>";
                                echo"<td style=width:100px;><font color='black'>". $test['Abreise1']. "</font></td>";
                                echo"<td style=width:200px;><font color='black'>". $test['Name']. "</font></td>";
                                echo"<td style=width:200px;><font color='black'>". $test['Bemerkung']. "</font></td>";
                                echo"<td> <a href ='view.php?Id=$Id'>Edit</a>";
                                echo"<td> <a href ='del.php?Id=$Id'><center>Delete</center></a>";

                                echo "</tr>";
                        }
                        mysql_close($conn);
                        ?>
</table>

</body>
</html>

02.03.2014 16:44

2 Jörg Kruse

1)Nach dem Eintragen eines neuen Datums muss ich immer erst das Jahr aktualisieren. Dann kommt die Liste neu.

Das habe ich nicht verstanden - wo / wie aktualisierst du das Jahr?

2)Das Jahr stellt sich nach dem aktulisieren auch immer wieder auf das aktuelle Jahr (nicht auf das selektierte Jahr)

Du meinst im Dropdown-Menü? Nach dem Submit wird die Seite neu geladen, von der Auswahl vom vorigen Seitenaufruf weiß das Script nichts. Du könntest bei der Auswahl $_POST['year'] berücksichtigen, in etwa so:

$selected_year = date('Y');
if (! empty($_POST['year'])) {
    $selected_year = $_POST['year'];
}
for($starting_year; $starting_year <= $ending_year; $starting_year++) {
    if($starting_year == $selected_year) {
        echo '<option value="'.$starting_year.'" selected="selected">'.$starting_year.'</option>';
    } else {
        echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
    }
}

Dieser Submit-Button scheint übrigens ohne Funktion:

                <td><input type="submit" name="submit" value="add" /></td>

02.03.2014 18:01

3 webuser

Hallo,
danke für den Hinweis.
Immer wenn ich mit "add" einen Datensatz hinzugefügt habe, muss ich mit dem
Jahres Button "submit" erst das Jahr aktualisieren.
Kann die Liste nicht sofort nach dem eintragen neu aufgebaut werden?

Gruss
Webuser

03.03.2014 05:51

4 Jörg Kruse

Du könntest aus den zwei Formularen eins machen, so dass mit einem Submit alle Felder übertragen werden.

03.03.2014 13:37

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]