Hallo, ich bin Anfänger bei JavaScript.
Muß dennoch folgendes Problem lösen:
Es geht um Menü-Auswahl in einem E-Shop. Das Folgemenü soll abhängige Werte aus der Auswahl im vorangegangenen Menü aus der Datenbank generieren. Hierzu ruft sich die PHP-Site noch einmal selbst auf. Das Problem ist, daß sich die vorangegangene Variable - -hier "antriebsart"- nicht speichern läßt für die Abfrage aus "kategorie".
Bei Anhängen in "location" wird für antriebsart "[object%20HTMLInputElement]" gesetzt.
---------------------------------------------------------------------------------------------------------------------
<form name='sel' action='test2.php' enctype='multipart/form-data' method='GET' >
<?
$anfrage="SELECT count(antriebsart) AS Zahl,antriebsart FROM Fahr_2 GROUP BY antriebsart";
$ergebnis=mysql_db_query("autosboerse_com_3",$anfrage,$db) or die ("<b>Fehler bei antriebsart</b>");
$num = mysql_num_rows($ergebnis);
if ($antriebsart == '') {
?>
<select name="antriebsart" size='1' onChange="goThere(this)">
<option>beliebig </option>
<? for ($i=0; $i<$num ; $i++) {
?>
<option>
<?
$art = trim(mysql_result($ergebnis,$i,"antriebsart"));
echo $art;
echo " (".mysql_result($ergebnis,$i, "Zahl").")"; } }
else {
echo $antriebsart;
}
?>
<input name="antriebsart" type="hidden" id="antriebsart" value="<?=$antriebsart ?>">
</select >
<SCRIPT LANGUAGE="JavaScript">
function goThere() {
var list = document.sel.antriebsart
location = '?antriebsart=' + list.options[list.selectedIndex].value
}
</script>
<td width="25%">
<?
$antriebsart=substr($antriebsart,0,strpos($antriebsart, "(" ) - 1 );
$anfrage="SELECT count(kategorie) AS Zahl,kategorie,antriebsart FROM Fahr_2
WHERE antriebsart LIKE '%$antriebsart%' GROUP BY kategorie";
$ergebnis=mysql_db_query("autosboerse_com_3",$anfrage,$db) or die ("<b>Fehler bei kategorie</b>");
$num = mysql_num_rows($ergebnis);
if ($kategorie == '') {
?>
<select name= 'kategorie' size='1' onChange='goKategorie(this)'>
<option selected>beliebig</option>
<?
for ($i=0; $i<$num ; $i++) {
echo "<option>";
echo trim(mysql_result($ergebnis,$i,"kategorie"));
echo " (".mysql_result($ergebnis,$i, "Zahl").")";
}
echo "</select>";
}
else echo $kategorie;
?>
<SCRIPT LANGUAGE="JavaScript">
function goKategorie() {
var listk = document.sel.kategorie
location = ('?kategorie=' + listk.options[listk.selectedIndex].text +
'&antriebsart=' + antriebsart );
}
</script>
---------------------------------------------------------------------------------------------
Beim Aufruf für Kategorie wird an das URL übergeben:
http://shop.autosboerse.com/test2.php?kategorie=Oldtimer%20(2)&antriebsart=[object%20HTMLInputElement]
also für "antriebsart" in der location bei "goKategorie" " [object%20HTMLInputElement]"
Die Variable $antriebsart ist bei der Auswahl für Antriebsart inhaltlich vorhanden.
Sie geht mir beim Aufruf von Kategorie ganz einfach verloren.
Globals wie $_FILES kann ich nicht aufrufen. Cookies möchte ich nicht benutzen.
Hat Jemand von den JavaScript Profis eine Idee ?
Muß dennoch folgendes Problem lösen:
Es geht um Menü-Auswahl in einem E-Shop. Das Folgemenü soll abhängige Werte aus der Auswahl im vorangegangenen Menü aus der Datenbank generieren. Hierzu ruft sich die PHP-Site noch einmal selbst auf. Das Problem ist, daß sich die vorangegangene Variable - -hier "antriebsart"- nicht speichern läßt für die Abfrage aus "kategorie".
Bei Anhängen in "location" wird für antriebsart "[object%20HTMLInputElement]" gesetzt.
---------------------------------------------------------------------------------------------------------------------
<form name='sel' action='test2.php' enctype='multipart/form-data' method='GET' >
<?
$anfrage="SELECT count(antriebsart) AS Zahl,antriebsart FROM Fahr_2 GROUP BY antriebsart";
$ergebnis=mysql_db_query("autosboerse_com_3",$anfrage,$db) or die ("<b>Fehler bei antriebsart</b>");
$num = mysql_num_rows($ergebnis);
if ($antriebsart == '') {
?>
<select name="antriebsart" size='1' onChange="goThere(this)">
<option>beliebig </option>
<? for ($i=0; $i<$num ; $i++) {
?>
<option>
<?
$art = trim(mysql_result($ergebnis,$i,"antriebsart"));
echo $art;
echo " (".mysql_result($ergebnis,$i, "Zahl").")"; } }
else {
echo $antriebsart;
}
?>
<input name="antriebsart" type="hidden" id="antriebsart" value="<?=$antriebsart ?>">
</select >
<SCRIPT LANGUAGE="JavaScript">
function goThere() {
var list = document.sel.antriebsart
location = '?antriebsart=' + list.options[list.selectedIndex].value
}
</script>
<td width="25%">
<?
$antriebsart=substr($antriebsart,0,strpos($antriebsart, "(" ) - 1 );
$anfrage="SELECT count(kategorie) AS Zahl,kategorie,antriebsart FROM Fahr_2
WHERE antriebsart LIKE '%$antriebsart%' GROUP BY kategorie";
$ergebnis=mysql_db_query("autosboerse_com_3",$anfrage,$db) or die ("<b>Fehler bei kategorie</b>");
$num = mysql_num_rows($ergebnis);
if ($kategorie == '') {
?>
<select name= 'kategorie' size='1' onChange='goKategorie(this)'>
<option selected>beliebig</option>
<?
for ($i=0; $i<$num ; $i++) {
echo "<option>";
echo trim(mysql_result($ergebnis,$i,"kategorie"));
echo " (".mysql_result($ergebnis,$i, "Zahl").")";
}
echo "</select>";
}
else echo $kategorie;
?>
<SCRIPT LANGUAGE="JavaScript">
function goKategorie() {
var listk = document.sel.kategorie
location = ('?kategorie=' + listk.options[listk.selectedIndex].text +
'&antriebsart=' + antriebsart );
}
</script>
---------------------------------------------------------------------------------------------
Beim Aufruf für Kategorie wird an das URL übergeben:
http://shop.autosboerse.com/test2.php?kategorie=Oldtimer%20(2)&antriebsart=[object%20HTMLInputElement]
also für "antriebsart" in der location bei "goKategorie" " [object%20HTMLInputElement]"
Die Variable $antriebsart ist bei der Auswahl für Antriebsart inhaltlich vorhanden.
Sie geht mir beim Aufruf von Kategorie ganz einfach verloren.
Globals wie $_FILES kann ich nicht aufrufen. Cookies möchte ich nicht benutzen.
Hat Jemand von den JavaScript Profis eine Idee ?
Zuletzt bearbeitet: