Enrico: PHP/jQuery: übergebene Variablen werden scheinbar ignoriert

Beitrag lesen

Hallo,

bitte entschuldigt, dass ich euch schon wieder bemühen muss, aber scheinbar werden die von PHP an Javascript übergebene Variablen ignoriert.

Ich fange am Besten ganz von Vorne an:

-----------------
Datei "Index.php"
-----------------

Diese Datei ist die zentrale Datei unseres Online-Shops.

[1] Dynamische Erzeugung der jeweils benötigten Variablen, je nach dem welche Inhalte gerade angezeigt werden bzw. angezeigt werden sollen (Texte, Fotos, Sortiment als Übersicht, Artikeldetails,...)
[2] Einbindung der externen JavaScript-Datei "Menues.js", die über die Funktion "Navigation" [3] das Haupt- und, falls verfügbar, auch das zugehörige Untermenü aufbaut
[3] Aufruf der Funktion "Navigation"

  
<?php  
session_start();  
  
   if (extension_loaded ("zlib") && strstr ($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip"))  
   {  
      @ob_start ("ob_gzhandler");  
   }  
  
   include ('PHP/Session.php');  
  
?>
<html>  
   <head>  
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
      <link type="text/css" href="CSS/Reset.css" rel="stylesheet" media="screen" />  
      <link type="text/css" href="CSS/Aufbau.css" rel="stylesheet" media="screen" />  
      <script type="text/javascript" src="JS/Console.js"></script>  
      <script type="text/javascript" src="JS/jQuery.js"></script>  
  
   </head>  
   <body>  

~~~~~~javascript
  
      <script type="text/javascript">  

~~~~~~php
  
         <?php  
  
[1]         include ('PHP/Parameter.php');  
  
         ?>  

~~~~~~javascript
  
         $(document).ready(function()  
         {  
            $(window).load(function()  
            {  
[2]            $.getScript('JS/Menues.js',function()  
               {  
[3]               Navigation (AuswahlHauptmenue, AuswahlUntermenue);  
               });  
            });  
         });  

~~~~~~html
  
      </script>  
      <form id="Sidebar">  
         <input name="AuswahlHauptmenue" value="0">  
         <input name="AuswahlUntermenue" value="0">  

...Ausgabe der Menüs...~~~html

</form>

  
  
  
\---------------------  
Datei "Parameter.php"  
\---------------------  
  
[4] Sofern die jeweilige Variable besteht oder nicht leer ist,...  
[5] ...dann gib den Namen und den Inhalt aus.  
  
[6] Ansonsten, aber nur, wenn es sich hierbei um die Variablen "AuswahlHauptmenue" oder "AuswahlUntermenue" handelt,...  
[7] ...gib den Namen aus und belege sie mit 0, d.h. alle anderen möglichen Variablen wurden nicht gesendet, weil sie derzeit noch nicht benötigt werden  
  
Schritt 7 deshalb, damit ich einen Ausgangspunkt beim ersten Aufrufen unseres Onlie-Shops habe.  
~~~php
  
<?php  
  
   $Parameter = array ('AuswahlHauptmenue', 'AuswahlUntermenue', 'Aktion', 'Bildnummer', 'Bezeichnung', ...weitere mögliche Variablen...);  
  
   $AnzahlElemente = count ($Parameter);  
  
   for ($i = 0; $i < $AnzahlElemente; $i++)  
   {  
[4]   if (array_key_exists ($Parameter[$i], $_POST) || !empty ($_POST[$Parameter[$i]]))  
      {  
[5]      echo $Parameter[$i] . ' = ' . $_POST[$Parameter[$i]] . ';';  
      }  
      else  
      {  
[6]      if ($i == 0 || $i == 1)  
         {  
[7]         echo $Parameter[$i] . ' = 0;';  
         }  
      }  
   }  
  
?>  

----------------
Datei "Menue.js"
----------------

Den Code beschränke ich nachfolgend auf das eigentliche Abschicken des Formulares, da der Aufbau von Haupt- und Untermenü funktioniert, sobald ich die Werte hart eingebe.

[8]  Das Formular "Sidebar" wird entweder durch Aklicken eines Hauptmenüpunktes oder eines Untermenüpunktes, sofern ein Untermenü vorhanden ist, abgeschickt
[9]  Vor dem Abschicken werden die Werte der (später versteckten) Textfelder zu einem String zusammengesetzt
[10] Beim Abschicken des Formulares wird das ursprüngliche Verhalten unterbunden, damit es zu keinem Reload der Seite kommt

  
[8]   $('div.ButtonHauptmenue, div.ButtonUntermenue').click(function()  
      {  
[9]      Daten = $('#Sidebar').serialize();  
  
[10]     $('#Sidebar').submit(function()  
         {  
            return false;  
         });  
  
         $.post("Index.php", function(Daten)  
         {  
            alert ("Daten geladen: " + Daten);  
         });  
      });  

Bis einschliesslich des Punktes [9] funktioniert alles bestens, lediglich die korrekte Übergabe bzw. Ermittlung der jeweiligen Werte der Variablen "AuswahlHauptmenue" und "AuswahlUntermenue" wird scheinbar ignoriert bzw. das Auslesen funktioniert nicht.

Ich hoffe, ihr könnt mir hier auch weiterhelfen.

"Same procedure as last time":
Danke und Gruß
Enrico