ZebraDatepicker - $_SESSION nach aufrufen leer

inspiron8

Mitglied
Hallo,
ich habe mir mit dem jquery "ZebraDatepicker" eine Testseite aufgebaut.
Nach klick auf ein Datum wird aus einer DB der entsprechende Datensatz aufgelistet.
Nun möchte ich nach betätigen des Button "Bericht drucken" daraus ein PDF erstellen.
Hier brauche ich bitte mal eure Hilfe zum Problem:
Nachdem "Kalenderklick" werden die Daten aufgelistet, danach ist die "$_SESSION['DATUM_mysql']" wieder leer.

Gruß

PHP:
<?php header ('Content-Type: text/html; charset=utf-8');
error_reporting(E_ALL);
session_start ();

include ('../config_db.php');

echo "<pre>";
var_dump($_POST);
print_r($_POST);
echo "</pre>";
//-----------------------------------------------

// "pdf erstellen"
if (isset($_POST['pdf_drucken']))
{
  $_SESSION['DATUM_mysql'] = $_POST['mysql_datum'];
 //$_SESSION['DATUM_mysql'] = "2013-03-18";
 Header("Location: bericht_pdf.php");
}

$sql = "SELECT * FROM `Tabelle` WHERE `SCHICHT` = '" .$_SESSION["schicht"]. "' AND `DATUM` = '" .$_POST["mysql_datum"]. "' ORDER BY `ID` DESC;";

echo var_dump($sql);

$abfrageergebnis = mysql_query( $sql, $conID );
while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{
    echo "ID: ".$datensatz['ID']."<br>";
    echo "Name: ".$datensatz['M_NAME']."<br>";
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">

<title>Datepicker_TEST</title>

<link rel="stylesheet" title="Default" href="../css/zebra_datepicker_metallic.css" type="text/css">

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript" src="../jquery/zebra_datepicker.js"></script>

<script type="text/javascript">

$(document).ready(function(){
        // Calendar        
        $('#mysql_datum').Zebra_DatePicker({
                always_visible: $('#calendar'),
                //onSelect: function(dates) { alert('MySQL-Datum: ' + dates); }
                onSelect: function(dates) { document.myform.submit(); }
    });
});

</script>
</head>

<body>
<form class="commentForm" name="myform" method="post" accept-charset="utf-8" action="">

<div>
      <input type="text" id="mysql_datum" name="mysql_datum">
      <div id="calendar" style="margin: 10px 0 0 200px"></div>
</div>
<div>
      <input type="submit" name="pdf_drucken" id="pdf_drucken" value="Bericht drucken"/>
</div>

</form>
</body>
</html>
 
Wann ist die Session leer? Nach dem PDF erstellen? Wird diese variable vllt in bericht_pdf.php irgendwie überschrieben? Oder bestimmte header gesendet, die die session-ID resetten?
 
Nachdem "Kalenderklick" !

....wenn ich das "onSelect" deaktiviere, dann kann ich das Datum anwählen und mit dem Button das PDF erstellen. Das ist o.k.
Nun möchte ich es aber so, das bei klick auf Datum der Datensatz gelistet wird und erst nach klick auf Button ein PDF erstellt wird.


PHP:
<script type="text/javascript">

$(document).ready(function(){
        // Calendar        
        $('#mysql_datum').Zebra_DatePicker({
                always_visible: $('#calendar'),
                //onSelect: function(dates) { document.myform.submit(); } <----DEAKTIVIERT
    });
});

</script>
 
Was bekommst du den bei var_dump($_POST) angezeigt? Werden hier die Daten überhaupt korrekt gesendet?
 
Was bekommst du den bei var_dump($_POST) angezeigt? Werden hier die Daten überhaupt korrekt gesendet?

Hallo,
ich habe mal das "onSelect" deaktiviert.
Nach klick im Kalender wird das Datum auch im <Input "Text" mysql_datum> angezeigt. Dann klick Button "PDF", pdf wird erstellt.

Code:
array(2) {
  ["mysql_datum"]=>
  string(10) "2013-03-18"
  ["pdf_drucken"]=>
  string(15) "Bericht drucken"
}
Array
(
    [mysql_datum] => 2013-03-18
    [pdf_drucken] => Bericht drucken
)
string(105) "SELECT * FROM `Tabelle` WHERE `SCHICHT` = 'PP2.2' AND `DATUM` = '2013-03-18' ORDER BY `ID` DESC;"

...hier das "onSelect" aktiviert,
nach klick im Kalender wird gleich der Datensatz gelistet:

Code:
array(1) {
  ["mysql_datum"]=>
  string(10) "2013-03-18"
}
Array
(
    [mysql_datum] => 2013-03-18
)
string(105) "SELECT * FROM `Tabelle` WHERE `SCHICHT` = 'PP2.2' AND `DATUM` = '2013-03-18' ORDER BY `ID` DESC;"

...anschließend klick auf Button "PDF drucken":

Code:
array(2) {
  ["mysql_datum"]=>
  string(0) ""
  ["pdf_drucken"]=>
  string(15) "Bericht drucken"
}
Array
(
    [mysql_datum] => 
    [pdf_drucken] => Bericht drucken
)
string(95) "SELECT * FROM `Tabelle` WHERE `SCHICHT` = 'PP2.2' AND `DATUM` = '' ORDER BY `ID` DESC;"

Das Problem ist, nach dem Seitenaufbau wird der Kalender zurück gesetzt. Dann ist das Datum wech!
Kann man denn mit "onselect" eine DB Abfrage ohne ein Seitenreset machen?
 
Ich kenne den Kalender leider nicht und kann es deshalb nicht wirklich testen.

Aber muss dem Datumsfeld nicht der POST- oder SESSION-Wert übergeben werden damit es nach dem Abschicken wieder gefüllt wird?

PHP:
<input type="text" id="mysql_datum" name="mysql_datum" value="<?php echo @$_POST['mysql_datum']; ?>">

Ich mache es mir hier mal einfach und unterdrücke die Fehlermeldung mit dem @ wenn kein POST-Wert vorhanden ist (finde ich aber auch nicht schlimm).
 
....ich glaube das einfach nicht, es funktioniert!
In meinem Formular verwende ich es genauso um die Werte in den Feldern, bei Fehler und noch nicht versendet zu erhalten. Wie blöd ist das denn.
Naja, ein großes Dankeschön.

Gruß
 

Neue Beiträge

Zurück