PHP Variablen an "location" in JavaScript

kschffm

Grünschnabel
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 ?
 
Zuletzt bearbeitet:
Wie wärs mit nem bisschen Highlighting und Einrücken. Das is ja grauenvoll, so guck ich mir das Script nicht an und da bin ich glaub ich nicht alleine.

MfG
 
Tschuldigung, dass in dem Code-Beispiel die Einrückungen verloren gegangen sind.
Habe ich zu spät gesehen.
Mit "echo" und "$" in JavaScript zu hantieren klappt nicht oder gibt es da einen Trick ?
Die Zeile mit "location" steht in JavaScript.

Habe es auch probiert mit encode("..."); Geht nicht.
Habe auch den String aus der 1.location in die 2.location eingefügt:
z.B. list.options[list.selectedIndex].value
Geht nicht !
 
Beispiel:
PHP:
<?php
$url="http://www.kde.org";
?>
<script type="text/javascript">
top.location.href="<?php echo $url; ?>";
</script>
 
Nichts zu danken.
Weiterhin viel Erfolg.

Falls alle Fragen geklaert sind denk bitte daran den Thread als erledigt zu markieren, falls nicht schon geschehen.
 
Ich weiss schon wo man den Opera herkriegt.
Und ich glaube nicht wirklich, dass Du mir eine CD schicken willst. Das duerfte Dir dann nach einem Blick in mein Profil und nach genauerer Ueberlegung etwas zu teuer werden. ;)

Es geht mir in dem Link in meiner Signatur nur darum die 250 Klicks vollzukriegen um die kostenlose Lizenz abzusahnen.
Die besagten 250 Klicks hab ich uebrigens gerade zusammen. :)
Dank an alle die geklickt haben!
 
Also, mit der CD-Zusendung war es mir Ernst.
Dein Rat hat mir wirklich sehr viel Mühe erspart.
Ich verwende u.a. als Buch: JavaScript von Danny Goodman.
Glaube nicht, dass ich es so dort gefunden hätte.
Ich bin Datenbankprogrammierer und Mitarbeiter in einer Fa.


Wenn Du OPERA downladen willst, so geht der kostenlose Download nur über einen Browser, der nicht von OPERA ist. Der Download über den OPERA-Browser ist kostenpflichtig.
 
Zurück