Avatar billede Nollon Nybegynder
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>';}
?>
Avatar billede majbom Novice
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...
Avatar billede Nollon Nybegynder
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
Avatar billede majbom Novice
25. august 2011 - 14:41 #3
enten dét, eller et felt i tabellen, der angiver om landet er i eu...
Avatar billede Nollon Nybegynder
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 ?
Avatar billede majbom Novice
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
Avatar billede Nollon Nybegynder
25. august 2011 - 15:45 #6
hmm det sys jeg umidlbart ikke jeg kan få til at virke kan du evt. skrive det ?
Avatar billede majbom Novice
25. august 2011 - 16:43 #7
hvad har du prøvet?
Avatar billede Nollon Nybegynder
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{}
Avatar billede majbom Novice
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...
Avatar billede olebole Juniormester
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>
Avatar billede olebole Juniormester
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
Avatar billede majbom Novice
25. august 2011 - 20:06 #12
snedigt...
Avatar billede coderdk Praktikant
26. august 2011 - 02:35 #13
if (isset($eu[$_POST['country']])) {

hvis du vil undgå notices
Avatar billede coderdk Praktikant
26. august 2011 - 02:35 #14
if (isset($eu[$_POST['country']])) {

hvis du vil undgå notices
Avatar billede Nollon Nybegynder
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 ?
Avatar billede olebole Juniormester
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å?
Avatar billede Nollon Nybegynder
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
Avatar billede olebole Juniormester
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?
Avatar billede Nollon Nybegynder
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.
Avatar billede olebole Juniormester
28. august 2011 - 22:53 #20
Hvad sker der, hvis du skriver:


print 'Land: '.$_POST['country'];
exit();
if ($eu[$_POST['country']]) {

Avatar billede Nollon Nybegynder
28. august 2011 - 23:01 #21
Så skriver den
Land: 60
Avatar billede Nollon Nybegynder
28. august 2011 - 23:02 #22
60 = det land jeg har valgt's nr
Avatar billede olebole Juniormester
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
Avatar billede Nollon Nybegynder
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 ?
Avatar billede olebole Juniormester
28. august 2011 - 23:48 #25
Jo  =)
Avatar billede Nollon Nybegynder
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
Avatar billede olebole Juniormester
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  =)
Avatar billede Nollon Nybegynder
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
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester