Hallo
ich schreibe eine Seite mit Formularfeldern und mehreren dynamischen Dropdowns, wobei die folgenden Dropdowns durch javascript window.location mit Daten aus der DB gefüllt werden. Nun habe ich aber einige MUSS Felder und dadurch einige kleine Probleme, da das bereits eingetragene nicht gelöscht werden soll.
Hier ein Codeauschnitt der ersten beiden Selects
<select name="init" onchange="window.location=('order1.php?init='+this.options[this.selectedIndex].value)">>
<option></option>
<option value="init" <? product $user_data, "user_product", "init", "s", "init");?>>with Initalization</option>
<option value="label_init" <? product($user_data, "user_product", "init", "s", "label_init");?>>with label & initalization</option>
<option value="cart_lab" <? product($user_data, "user_product", "init", "s", "cart_lab"); ?>>with label</option>
<option value="cart_blank" <? product($user_data, "user_product", "init", "s", "cart_blank"); ?>>with blank label</option>
</select>
##########
<select name="cartridge" size="1" onchange="window.location=('order1.php?init=<?=$init;?>&cartridge='+this.options[this.selectedIndex].value)">>
<option></option>
<?
//Cartridge
if($user_data["user_product"]["init"]!="")
{
if($user_data["user_product"]["init"]=="init" || $user_data["user_product"]["init"]=="label_init")
{
$cart=safe_query("SELECT * FROM cartridge WHERE was='ent' ORDER BY id");
}else{
$cart=safe_query("SELECT * FROM cartridge ORDER BY id");
}
while($row=mysql_fetch_array($cart))
{
echo "<option value=\"$row[2]\"";
product($user_data, "user_product", "cartridge", "s", "$row[2]");
echo ">$row[2]</option>\n";
}
}
?>
</select>
Die Funktion product sieht so aus:
function product($user_data, $list, $art, $typ, $test=""){
switch ($typ){
case "v":
echo "value=\"".$user_data[$list][$art]."\"";
break;
case "c":
if ($test == $user_data[$list][$art]) echo "checked";
break;
case "s":
if ($test == $user_data[$list][$art]) echo "
selected";
break;
default: echo "";
}
}
Wenn jemand das Formular absendet wird alles mit $_POST in ein Session Array geladen => $user_data["user_product"] ABER wenn jetzt nicht alle * Felder ausgefüllt worden sind, springt die Seite mittels header:location zurück und von da an habe ich ein Problem. Da die Seite per javascript window.location neu geladen wird, wird leider das Array mit dem neuen Wert nicht aktualisiert.
Vielen Dank für eure Hilfe
Gruß
Dirk
ich schreibe eine Seite mit Formularfeldern und mehreren dynamischen Dropdowns, wobei die folgenden Dropdowns durch javascript window.location mit Daten aus der DB gefüllt werden. Nun habe ich aber einige MUSS Felder und dadurch einige kleine Probleme, da das bereits eingetragene nicht gelöscht werden soll.
Hier ein Codeauschnitt der ersten beiden Selects
<select name="init" onchange="window.location=('order1.php?init='+this.options[this.selectedIndex].value)">>
<option></option>
<option value="init" <? product $user_data, "user_product", "init", "s", "init");?>>with Initalization</option>
<option value="label_init" <? product($user_data, "user_product", "init", "s", "label_init");?>>with label & initalization</option>
<option value="cart_lab" <? product($user_data, "user_product", "init", "s", "cart_lab"); ?>>with label</option>
<option value="cart_blank" <? product($user_data, "user_product", "init", "s", "cart_blank"); ?>>with blank label</option>
</select>
##########
<select name="cartridge" size="1" onchange="window.location=('order1.php?init=<?=$init;?>&cartridge='+this.options[this.selectedIndex].value)">>
<option></option>
<?
//Cartridge
if($user_data["user_product"]["init"]!="")
{
if($user_data["user_product"]["init"]=="init" || $user_data["user_product"]["init"]=="label_init")
{
$cart=safe_query("SELECT * FROM cartridge WHERE was='ent' ORDER BY id");
}else{
$cart=safe_query("SELECT * FROM cartridge ORDER BY id");
}
while($row=mysql_fetch_array($cart))
{
echo "<option value=\"$row[2]\"";
product($user_data, "user_product", "cartridge", "s", "$row[2]");
echo ">$row[2]</option>\n";
}
}
?>
</select>
Die Funktion product sieht so aus:
function product($user_data, $list, $art, $typ, $test=""){
switch ($typ){
case "v":
echo "value=\"".$user_data[$list][$art]."\"";
break;
case "c":
if ($test == $user_data[$list][$art]) echo "checked";
break;
case "s":
if ($test == $user_data[$list][$art]) echo "
selected";
break;
default: echo "";
}
}
Wenn jemand das Formular absendet wird alles mit $_POST in ein Session Array geladen => $user_data["user_product"] ABER wenn jetzt nicht alle * Felder ausgefüllt worden sind, springt die Seite mittels header:location zurück und von da an habe ich ein Problem. Da die Seite per javascript window.location neu geladen wird, wird leider das Array mit dem neuen Wert nicht aktualisiert.
Vielen Dank für eure Hilfe
Gruß
Dirk