Wie eine xml info per post übertragen?

Hallo Allerseits!

Ich hab mir mit Javascript und PHP eine relationales Formmenü gebastelt. Zwei Dropdown Listen, von denen die zweite abhängig von der ersten verschiedene Menüpunkte darstellt (und das halt web2.0 - mäßig).

Hier mal mein Formular:
PHP:
<select name="maincat" id="maincat" onChange="return MainCatOnChange()">
<?php $sql = "SELECT ID, name, topid FROM article_cat WHERE topid = '' ORDER BY name"; $db = mysql_query($sql);
echo "<option value=\"0\">---</option>\n";
while($row = mysql_fetch_assoc($db)) {
  echo "<option value=\"".$row["ID"]."\">".$row["name"]."</option>\n";
}
?>
</select>
<select name="subcat" id="subcat" ></select>

Das Javascript dazu funktioniert einwandfrei und füllt mir meine "subcat" je nach Einstellung der "maincat" mit folgender xml - erstellender Datei:

PHP:
$xml = ''; 
$sql = "SELECT ID, name, topid FROM article_cat WHERE topid = '' ORDER BY name"; 	$db = mysql_query($sql);
$i = 0;
while($row = mysql_fetch_assoc($db)) {
  $i = $i+1;
  $sql2 = "SELECT ID, name, topid FROM article_cat WHERE topid = ".$i." ORDER BY name";
  $db2 = mysql_query($sql2); 
  if ($filter == $i) {
    $xml = $xml . '<maincat name="'.$row["name"].'">';
    while($data = mysql_fetch_assoc($db2)) {
      $xml = $xml . '<subcat id="'.$data["ID"].'">'.$data["name"].'</subcat>';
    }
  } 
}
$xml = $xml . '</maincat>';
 // send xml to client
echo( $xml );

Heraus kommt wunderschönes xml wie:
Code:
<maincat name="Rezepte">
<subcat id="4">Hauptspeisen</subcat>
<subcat id="5">Nachtisch</subcat>
<subcat id="3">Vorspeisen</subcat>
</maincat>

Und es funktioniert auch einwandfrei.... ABER ich schaffe es nicht die angewählte subcat herauszufinden. Normalerweise würde ich einfach auf der nächsten Seite mit $_POST["subcat"] die subcat auslesen, aber das geht irgendwie nicht. (Wahrscheinlich weil ich keine habe?? aber wie lese ich das dann aus...?)

Ich hoffe ihr versteht mein Problem, sonst werde ich versuchen, ob ich mal ein beispiel hinbekomme.

Maulwurf
 
Mir stellt sich die Frage warum du das Javascript aufrufst...weil

hier:
Code:
<?php $xml = ''; 
$sql = "SELECT ID, name, topid FROM article_cat WHERE topid = '' ORDER BY name";     $db = mysql_query($sql);
$i = 0;
while($row = mysql_fetch_assoc($db)) {
  $i = $i+1;
  $sql2 = "SELECT ID, name, topid FROM article_cat WHERE topid = ".$i." ORDER BY name";
  $db2 = mysql_query($sql2); 
  if ($filter == $i) {
    $xml = $xml . '<maincat name="'.$row["name"].'">';
    while($data = mysql_fetch_assoc($db2)) {
      $xml = $xml . '<subcat id="'.$data["ID"].'">'.$data["name"].'</subcat>';
    }
  } 
}
$xml = $xml . '</maincat>';
 // send xml to client+
gibst du zwar das XML aus aber was passiert dann weiter damit?

hier selectest du wieder was aus der DB formst daraus ne select box und dann machst du noch eine leere select box.
Code:
<select name="maincat" id="maincat" onChange="return MainCatOnChange()">
<?php $sql = "SELECT ID, name, topid FROM article_cat WHERE topid = '' ORDER BY name"; $db = mysql_query($sql);
echo "<option value=\"0\">---</option>\n";
while($row = mysql_fetch_assoc($db)) {
  echo "<option value=\"".$row["ID"]."\">".$row["name"]."</option>\n";
}
?>
</select>
<select name="subcat" id="subcat" ></select>

der javascript code zu dem ganzen wäre noch intressant bzw. noch eine kurze erkärung des problems, kann aber auch daran liegen das ich meinen cafe noch nicht fertig hab :D
 
Mir ist das jetzt wirklich peinlich.....

Ich wollte euch jetzt ein Beispiel ins Internet stellen, um zu zeigen, dass die subcat wirklich am Anfang leer ist usw.
Dabei habe ich meinen Fehler selber bemerkt.

Ich hatte in meiner ursprünglichen php Datei, die das Formular beinhaltete das Form-Tag ursprünglich erst später im Quelltext, sodass das Script maincat und subcat natürlich nicht kennen konnte :(

HIER habe ich für interessiert jetzt trotzdem das Beispiel hochgeladen. (Wird aber wohl nur wenige Tage da bleiben) Die Daten werden an Form2 übergeben. Ihr seht aber halt nur die IDs aus der Datenbank.

Man man man... ich könnte mich hier echt selbst ohrfeigen...

Maulwurf
 
Zurück
Oben