In het volgende scherm wil ik dat je krijgt te zien wat je hebt besteld en wat de totale kosten hiervan zijn, maar hoe kan ik nou alleen de prijzen eruit halen om op te tellen?
Ik krijg het alleen maar voor elkaar om een compleet artikel op te tellen en dat gaat natuurlijk niet... Nou kan ik wel in de value de tekst weghalen, maar dan kan je niet meer zien wat je besteld had...
Hier mijn PHP
<?php
$artikel = $_POST['artikel'];
$verzendk = $_POST['verzendkosten'];
$totaal = $artikel+$verzendk;
//een error als er iets fout gaat
if(!$mail->Send()){
echo 'Er ging iets mis tijdens uw bestelling, namelijk:<br/>';
echo $mail->ErrorInfo;
echo 'Neem contact met ons op';
//overzicht en optelsom van de totale bestelling
}else{
echo '<br/><br/>Uw bestelling is:<br/><br/>';
echo $mail->Body;
echo '<br/><br/>';
echo "Uw totale bestelling is: ".$_POST['artikel']." + ".$_POST['verzendkosten']." = $totaal euro<br/>";
}
?>
?
Onbekende gebruiker
27-05-2009 16:39
Je kunt die value van die options best naar wat anders aanpassen. Vast en zeker ook naar de prijs die ze hebben.
En anders ga je met een array's en [php]array_key_exists[/php] werken.
Ja dat kan ik inderdaad wel aanpassen, maar dan kan je in het e-mailtje niet zien wat je besteld hebt...
Hoe zou je dat oplossen met een array? voor elk item in de lijst een array met twee regels?
?
Onbekende gebruiker
27-05-2009 19:37
Nouw, zoiets:
<?php
$artikelen = array('Boom' => 10,
'Struik' => 10,
'Plant' => 10,
'Ophalen' => 'Gratis!',
'Verzendkosten' => 2);
// Ja, verzendkosten beschouw ik ook als artikel.
if(array_key_exists($_POST['artikel'], $artikelen) && array_key_exists($_POST['verzendkosten'], $artikelen))
{
// Niet onnodig variable kopieeren, variabele buiten quotes.
if(is_numeric($artikelen[$_POST['verzendkosten']]))
{
$formatted = sprintf('Uw totale bestelling is: %s (€ %.2f) + %s (€ %.2f) = € %.2f', $_POST['artikel'], $artikelen[$_POST['artikel']], $_POST['verzendkosten'], $artikelen[$_POST['verzendkosten']], $artikelen[$_POST['artikel']] + $artikelen[$_POST['verzendkosten']]);
}
else
{
$formatted = sprintf('Uw totale bestelling is: %s (€ %.2f) + %s (%s) = € %.2f', $_POST['artikel'], $artikelen[$_POST['artikel']], $_POST['verzendkosten'], $artikelen[$_POST['verzendkosten']], $artikelen[$_POST['artikel']]);
}
echo $formatted;
}
else
{
echo 'Er is wat mis gegaan!';
}
?>
ik kom er toch niet helemaal uit, moet ik de waarden van de artikelen bij gebruik van je voorbeeld zo laten staan als ze nu staan?
Gelieve Niet Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
ja dat heb ik nu ook, dat werkt prima.
Maar dan weet je dus niet of je boom, struik of plant hebt gekocht want ze zijn alledrie 10 euro...
?
Onbekende gebruiker
28-05-2009 09:15
hanneke schreef op 28.05.2009 00:05
ik kom er toch niet helemaal uit, moet ik de waarden van de artikelen bij gebruik van je voorbeeld zo laten staan als ze nu staan?
De $artikelen array is dus de array waar de prijzen in staan. Als je boom nu 15 euro word dan maak je van die tien die daar staat 15. Meer hoef je niet te doen.
Als je nu een boom 15,50 euro wilt laten kosten, dan verander je die 15 in 15.50 (let op de punt die daar staat).
Wil je d'r een product bij hebben zoals een tuinslag? Dat is gewoon met array's werken, die kan je d'r gewoon tussen stoppen zoals dit:
Wat ik vaak doe is gewoon één hele regel selecteren, ctrl-c en dan twee keer ctrl-v. Je moet wel even opletten dat het goed komt met de komma's die de items in de array scheid. Elke naam van een product is een key, zo'n getal (of Gratis!) is de value en samen zijn ze een item.
Tim Kampherbeek schreef op 28.05.2009 01:18
Als je gewoon de value even op bijv 10,00 zet. Dan leest die dat ook.
Die waarde wordt dan als integer beschouwd. Dus als je bijvoorbeeld 10,50 + 10,10 hebt, dan krijg je 20 en geen 20.00 of. Want dan wordt er namelijk dit gedaan:
<?php // kleurtjes
echo "10,10" + "10,50";
?>
Het is ook nog eens een string, omdat er een komma tussen staat, daarom moet dit wel tussen quotes en die waardes van mij hierboven niet, want dat zijn getallen en geen string.
@TS: Als je niet wilt dat je een punt tussen de getallen hebt, dan zou je ook even naar [php]number_format[/php] kunnen kijken.