Formulrauswertung mit JavaScript und PHP

DetlevK

Grünschnabel
Das komplette Listing wird zu lang! Ich werde versuchen, das wesentliche herauszuschreiben:

Code:
...
if (isset($POST['artikel']))
{
    $artikel = $_POST['artikel']; //Artikel
    $var = $_POST['var'];    //Variante (hier: Farbe)
    ...
    $artNr = $artikel.chr(160).$var; //ArtNr mit Variante, so in der Datenbank erfasst
    ...
    $korb[$artNr] = array($artBez, 1, $price); //Artikelbezeichnung, Anzahl und Preis in assoziatives Array
    $_SESSION['korb'] = $korb; //Ass. Array Warenkorb in Session
}

Die Variante (Farbe) wird nicht im Warenkorb erfasst. Das Feld ist leer, auch die anderen Daten fehlen.
Möglicherweise kann ein Fehler im DB-Zugriff vorliegen. Da werde ich noch etwas suchen müssen.

In der Version ohne farbabhängige Bilder funktioniert alles.
 

Sempervivum

Erfahrenes Mitglied
Hier liegt wahrscheinlich der Hund begraben:
Code:
$var = $_POST['var'];    //Variante (hier: Farbe)
Die Radiobuttons haben den Namen "col" und nicht "var".
 

DetlevK

Grünschnabel
Danke! Das wars natürlich! Und ich war mal wieder betriebsblind. Aber manchmal hilft es, die Gedanken zu sortieren, wenn man sich mit jemandem mit mehr Erfahrung austauschen kann.
 
Zuletzt bearbeitet:

Quaese

Moderator
Moderator
Hi,

ich sehe auch noch im JavaScript eine Ungereimtheit:
typeof imagesArray[id] liefert einen String zurück. Damit ist die Aussage typeof imagesArray[id] != undefined immer wahr (true).
Falls hier geprüft werden soll, ob das Array auf dem Index id nicht definiert (undefined) ist, solltest du auf Identität/Datentyp prüfen.
Javascript:
if (imagesArray[id] !== undefined) {
    // ...
}
Ciao
Quaese
 

DetlevK

Grünschnabel
Das scheint hier eher unerheblich zu sein, es funktioniert beides und der Inhalt des Arrayelements sollte ein String sein.
 

Quaese

Moderator
Moderator
Hi,

da wir ein Forum bieten wollen, in dem Code zu finden ist, der durch andere verwendet werden kann, sollte auch auf dessen Sinnhaftigkeit geachtet werden. Und da ist es meiner Meinung nach durchaus relevant, ob eine Bedingung verwendet wird, die immer true zurück liefert. Denn diese könnte ja auch entfallen und somit die Leistung erhöht werden.
Da hier allerdings geprüft werden soll, ob das Array am Index id einen Wert enthält, ist die Bedingung so, wie in deinem Codeschnipsel schlichtweg falsch bzw. sinnfrei. Sie sollt deshalb entweder
Javascript:
if (typeof imagesArray[id] != "undefined")
oder
Code:
if (typeof imagesArray[id] !== undefined)
lauten.

Ich muss dazu noch anmerken, dass ich nicht sehr erfahren bin in JavaScript
und eine Vorlage an mein Problem anpassen will.
Desweiteren hat sich meine Anmerkung auch auf deine Aussage bezogen. Ich dachte, du bist auch daran interessiert, JavaScript nicht nur zu übernehmen, sondern auch zu hinterfragen und dabei zu lernen.

Ciao
Quaese