Session $_POST UND $_GET ...

snackx

Mitglied
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
 
Sende doch das Formular nicht an ein anderes Script, um die Daten zu speichern, sondern sende es an sich selbst mit einem zusätzlichen Parameter, der angibt, dass die übergebenen Daten gespeichert werden sollen. Ist etwas fehlerhaft, zeigst Du das Formular nochmals an - und zwar mit den Daten aus dem übergebenen Array. Ist andernfalls alles korrekt gespeichrt worden, kannst Du mit der Header-Funktion auf die nächste Seite weiterleiten.

snuu
 
Zurück