Voor een medicijn kan alleen een USD- of een IQD-valuta ingevoerd en opgeslagen worden. En, elke valuta heeft een eigen field in het kolom purchaseprice.
En ik heb het invoer formulier zo gemaakt dat wanneer het input filed van IQD wat waarde bevat, dan wordt het USD input field d.m.v. javascript automatisch uitgeschakeld en visa versa.
En voor het verzenden van het formulier controleer ik zowel dmv een veriabel of een USD of een IQD bestaat met de volgende code:
En toch krijg ik bij elke keer gegevens invoer een mailtje met daarin undefined variable for purchasepriceDi of purchasepriceDo.
En dit vind ik erg vervelend.
Alvast bedankt voor het meedenken.
<?php if (isset($_POST['purchasepriceDi'])){
@$purchasepriceDi = mysqli_real_escape_string ($dbc, $trimmed['purchasepriceDi']);
}
if (isset($_POST['purchasepriceDo'])){
@$purchasepriceDo = mysqli_real_escape_string ($dbc, $trimmed['purchasepriceDo']);
}
?>
Yup. Gewoon je code repareren, die foutmeldingen krijg je omdat je codepaden volgt die afhankelijk zijn van het bestaan van bepaalde waarden. Ze zijn dus terecht als je die waarden niet gevuld hebt in die codepaden. Gewoon mbv isset() kijken wat gevuld is en wat niet.
In een if definieer je nu $purchasepriceDi óf $purchasepriceDo, maar nooit beide tegelijk. Kennelijk gebruikt je code verderop wél ergens $purchasepriceDi en $purchasepriceDo tegelijk.
Misschien handig om wat achtergrond info te geven over de 2 kolommen, nl:
PurchasepriceDi
PurchasepriceDo.
Beide zijn van het type decimal, eentje met waarde 15,4 en 13,2.
Zie URL: http://hawarco.co/img/printscreen_purchaseprice.png
En, eigenlijk is mijn probleem heel simpel, maar mijn vermoeden is dat mysql niet accepteert dat een kolom van het type decimal geen waarde bevat. En, daarom krijg ik telkens een Undefined variable wanneer bijv de variabel: $purchasepriceDi of $purchasepriceDo geen waarde bevat of het kan zijn dat de bovenstaande isset doet het niet wat het moet doen...
Want eigenlijk hoeft een gebruiker geen purchase price op te geven tijdens het invoeren van een medicijn. Het is dus geen vereiste en daarom laat ik geen bericht zien wanneer het geen waarde bevat.
Betekent dat ik in in de if statement ook !empty moet gebruiken ipv isset?
Nee, er wordt niets verwijderd of verborgen in het formulier.
Betreffende input field wordt enkel uitgeschakeld, dus helemaal grijs dat er niets ingevuld kan worden. En, dit gebeurt enkel wanneer andere input field wat waarde heeft...
Het decimale scheidingsteken is nog altijd een punt, en geen komma. Misvormde getallen voeren aan een kolom voor een numeriek type gaat hoogstwaarschijnlijk niet goed.
Overigens: waarom niet één dropdownveld voor een valuta, en één invulveld voor een bedrag? Tegelijkertijd heb je dan ook maar één kolom voor een bedrag nodig in je database? :/