25. august 2011 - 13:36
Der er
27 kommentarer og 1 løsning
Indenfor Eu eller Udenfor Eu
Jeg har et stort problem. Jeg har en form som sender en pdf og den skal ændre sig lidt. Vis man har valgt et land indenfor EU skal den ikke skrive moms på men vis man har valgt et land udenfor EU skal der moms på. Koderne: //Arrayet $eu = array("Belgium","Bulgaria","Cyprus","Denmark","Estonia","Finland","France","Monaco","Greece","Ireland","Latvia","Lithuania","Luxembourg","Malta","Netherlands","Poland"," Portugal","Romania","Slovakia","Slovenia","Spain","Great Britain","Sweden","Czech Republic","Germany","Hungary","Austria"); //Det her der skal væk vis man vælger et land inden for eu $pdf->Cell(170, 7, 'VAT*'); $vat = ($price / 100) * 25; $pdf->Cell(20, 7, $vat . ' ' . chr(128), 0, 1, 'R'); //Her vælger du landet du er fra (de blir trukket ud fra en DB) <label for="country">Country*: </label> <select name="country" id="country" class="select_fields"> <option value="">Choose country</option> <?php $db->selectAll("countries", "value"); while ($db->next()) { if ($country == $db->fetch("id")) { $selected = 'selected="selected"'; } else { $selected = '';} echo '<option value="' . $db->fetch("id") . '" ' . $selected . '>' . db->fetch("value") . '</option>';} ?>
Annonceindlæg fra Kingston Technology
25. august 2011 - 13:50
#1
if(!in_array($_POST['country'], $eu)) { $pdf->Cell(170, 7, 'VAT*'); $vat = ($price / 100) * 25; $pdf->Cell(20, 7, $vat . ' ' . chr(128), 0, 1, 'R'); } så bliver de kun skrevet hvis det der er valgt i select'en ikke er i dit $eu array...
25. august 2011 - 14:23
#2
Alle landene kommer fra databasen men jeg har lavet et array med lande i EU for troede det var den bedste måde at tjekke på om landene var fra Eu eller ikke
25. august 2011 - 14:41
#3
enten dét, eller et felt i tabellen, der angiver om landet er i eu...
25. august 2011 - 14:48
#4
Vis man så laver et felt i tabellen til eu og ikke eu hvordan får man det så til at virke ?
25. august 2011 - 14:59
#5
så skal du jo hente eu-feltet fra tabellen hvor landet er det som man har valgt i select'en
25. august 2011 - 15:45
#6
hmm det sys jeg umidlbart ikke jeg kan få til at virke kan du evt. skrive det ?
25. august 2011 - 16:43
#7
hvad har du prøvet?
25. august 2011 - 16:47
#8
jeg har prøver : $db->selectAll("countries", "eu"); $db->next(); if($db->fetch("eu") == 1){ $pdf->Cell(170, 7, 'VAT*'); $vat = ($price / 100) * 25; $pdf->Cell(20, 7, $vat . ' ' . chr(128), 0, 1, 'R'); }else{}
25. august 2011 - 19:52
#9
du skal have noget where på, så du kun henter den række med det land der er valgt i select'en...
25. august 2011 - 19:54
#10
<ole> Det er ikke til at sige noget om, hvad der sker - eller burde ske - når man ikke kender din databaseklasse /mvh </bole>
25. august 2011 - 20:01
#11
- og hvis du ønsker at bruge et array, så undgå
in_array , hvis du kan ... og det kan du =)
$eu = array("Belgium"=>1,"Bulgaria"=>1,"Cyprus"=>1,"Denmark"=>1,"Estonia"=>1,"Finland"=>1,"France"=>1,"Monaco"=>1,"Greece"=>1,"Ireland"=>1,"Latvia"=>1,"Lithuania"=>1,"Luxembourg"=>1,"Malta"=>1,"Netherlands"=>1,"Poland"=>1," Portugal"=>1,"Romania"=>1,"Slovakia"=>1,"Slovenia"=>1,"Spain"=>1,"Great Britain"=>1,"Sweden"=>1,"Czech Republic"=>1,"Germany"=>1,"Hungary"=>1,"Austria"=>1); if ($eu[$_POST['country']]) { // Landet er fra EU }
Det performer langt bedre
25. august 2011 - 20:06
#12
snedigt...
26. august 2011 - 02:35
#13
if (isset($eu[$_POST['country']])) { hvis du vil undgå notices
26. august 2011 - 02:35
#14
if (isset($eu[$_POST['country']])) { hvis du vil undgå notices
28. august 2011 - 14:37
#15
nu prøvede jeg lige: $eu = array("Belgium"=>1, "Bulgaria"=>1, "Cyprus"=>1, "Denmark"=>1, "Estonia"=>1, "Finland"=>1, "France"=>1, "Monaco"=>1, "Greece"=>1, "Ireland"=>1, "Latvia"=>1, "Lithuania"=>1, "Luxembourg"=>1, "Malta"=>1, "Netherlands"=>1, "Poland"=>1, "Portugal"=>1, "Romania"=>1, "Slovakia"=>1, "Slovenia"=>1, "Spain"=>1, "Great Britain"=>1, "Sweden"=>1, "Czech Republic"=>1, "Germany"=>1, "Hungary"=>1, "Austria"=>1); if ($eu[$_POST['country']]) { $pdf->Cell(170, 7, 'VAT*'); $vat = ($price / 100) * 25; $pdf->Cell(20, 7, $vat . ' ' . chr(128), 0, 1, 'R'); } men det virker stadig ikke helt rigtig :S noget jeg har lavet forkert eller ?
28. august 2011 - 15:03
#16
Hvordan skulle nogen kunne svare på det, når vi ikke ved, hvad "men det virker stadig ikke helt rigtig" betyder? Hvad sker - og hvad sker ikke? Får du fejl? Hvis du gør, hvad siger den så?
28. august 2011 - 16:32
#17
Okay. I PDF'en skal den kunne vise Moms'en vis har valgt et land udenfor EU og ikke skrive noget vis man har valgt et land indenfor EU og lige nu viser den ikke moms uanset om man vælger et land indenfor eller udenfor EU. Og der kommer ikke nogle fejl
28. august 2011 - 16:57
#18
Den kode, du skriver, må kun udskrive noget, hvis landet er indenfor EU. Prøv:
$eu = array("Belgium"=>1, "Bulgaria"=>1, "Cyprus"=>1, "Denmark"=>1, "Estonia"=>1, "Finland"=>1, "France"=>1, "Monaco"=>1, "Greece"=>1, "Ireland"=>1, "Latvia"=>1, "Lithuania"=>1, "Luxembourg"=>1, "Malta"=>1, "Netherlands"=>1, "Poland"=>1, "Portugal"=>1, "Romania"=>1, "Slovakia"=>1, "Slovenia"=>1, "Spain"=>1, "Great Britain"=>1, "Sweden"=>1, "Czech Republic"=>1, "Germany"=>1, "Hungary"=>1, "Austria"=>1); if ($eu[$_POST['country']]) { print 'Kom forbi betingelse<br>'; $pdf->Cell(170, 7, 'VAT*'); $vat = ($price / 100) * 25; print 'pris: '.$price.' - moms: '.$vat; exit(); $pdf->Cell(20, 7, $vat . ' ' . chr(128), 0, 1, 'R'); }
Hvad udskriver dette i PHP-dokumentet, når du har valgt et land indenfor og udenfor EU?
28. august 2011 - 22:44
#19
Hmm Det underligt :S Uanset om man vælgen indenfor eller udenfor EU skriver den ikke noget. Det burde da ellers virke ? det var nemlig også noget li med det første jeg prøvede.
28. august 2011 - 22:53
#20
Hvad sker der, hvis du skriver:
print 'Land: '.$_POST['country']; exit(); if ($eu[$_POST['country']]) {
28. august 2011 - 23:01
#21
Så skriver den Land: 60
28. august 2011 - 23:02
#22
60 = det land jeg har valgt's nr
28. august 2011 - 23:26
#23
Jamen, hvis du refererer til landet med et tal - og ikke landenavnet - skal arrayet da se helt anderledes ud! :D
28. august 2011 - 23:37
#24
Ja det kan jeg godt se nu :) har overtaget koderne fra en anden :P Men så er det vel bare at lave navnene omtil tallene istedetfor ikke ?
28. august 2011 - 23:48
#25
Jo =)
29. august 2011 - 00:11
#26
Kanon nu virker det sq :D tak for hjælpen :) li et sidste spørgsmål :P Hvorn gir man de point :D
29. august 2011 - 00:23
#27
Selvtak. Jeg samler ikke points, men læg selv et svar (ikke en kommentar) og accepter det. Så lukkes tråden =)
29. august 2011 - 11:51
#28
Array'et skulle laves til omtil tal da det var landets ID der blev trukket ud fra databasen. så: $eu = array("22" => 1, "34" => 1, "58" => 1, "60" => 1, "70" => 1, "75" => 1, "76" => 1, "143" => 1, "86" => 1, "105" => 1, "119" => 1, "125" => 1, "126" => 1, "134" => 1, "152" => 1, "173" => 1, "174" => 1, "178" => 1, "195" => 1, "196" => 1, "201" => 1, "226" => 1, "207" => 1, "59" => 1, "83" => 1, "99" => 1, "15" => 1); if ($eu[$_POST['country']]) { // Landet er fra EU }
Vi tilbyder markedets bedste kurser inden for webudvikling