Avatar billede jonas_j Nybegynder
19. august 2004 - 16:29 Der er 10 kommentarer og
1 løsning

Hjælp til sammenligne 2 variabler og tilføje en "selected"

Jeg skal have sammenlignet en prioritets-værdi med en allerede eksisterende prioritet. F.eks. Har min "Projekt" en prioritet der hedder "1". Jeg skal så have sammenlignet værdi="1", med de prioriteter jeg har i min <select><option>. Hvordan gør jeg det? og kan jeg evt. lave en for-sætning istedet for if-sætninger. Hvis altså det er nemmere. Nedenunder ses koden

if($prioritet ==
echo '<tr><td>Prioritet:</td><td><select name="prioritet" size="1"><option value="0" selected>Ikke defineret</option>
<option value="1">1</option><option value="2">2</option><option value="3">4</option><option value="5">5</option>
<option value=løbende>Løbende</option></select></td></tr>';
Avatar billede dennismp Nybegynder
19. august 2004 - 16:53 #1
med andre ord. Du har en variable ($prioritet) og en drop-down, som skal laves sådan, at den række med value==$prioritet skal være selected?

Først et array til din dropdown:

$dropdown = array();
$dropdown[0] = 'Ikke defineret';
$dropdown[1] = '1';
$dropdown[2] = '2';
$dropdown[3] = '3';
$dropdown[4] = '4';
$dropdown[5] = '5';
$dropdown['løbende'] = 'Løbende';

og en funktion til at lave en dropdown. Du giver den et array ($dropdown) og en default værdi (hvilken skal være selected).

function makeDropdownOptions($dropdown,$default=null) {
  $str = '';
  foreach($dropdown as $val => $name) {
    if( $default == $val )
      $selected = 'SELECTED';
    else
      $selected = '';

    $str .= "<option value=\"$val\" $selected>$name</option>\n";
  }
  return $str;
}

Så burde du kunne bruge den således her:

print '<select name="prioritet" size="1">';
print makeDropdownOptions($dropdown,$prioritet);
print '</select>';
Avatar billede jonas_j Nybegynder
19. august 2004 - 17:01 #2
Det spiller bare max. Tak for hjælpen.
Avatar billede jonas_j Nybegynder
19. august 2004 - 17:01 #3
Lav lige et svar...
Avatar billede dennismp Nybegynder
19. august 2004 - 17:03 #4
Det var så lidt :-)
Avatar billede jonas_j Nybegynder
19. august 2004 - 17:09 #5
Hvorfor virker det ikke hvis jeg laver en mere med procent istedet:

                //make dropdown procent
                $dropdown = array();
                $dropdown[0] = '0%';
                $dropdown[10] = '10%';
                $dropdown[20] = '20%';
                $dropdown[30] = '30%';
                $dropdown[40] = '40%';
                $dropdown[50] = '50%';
                $dropdown[60] = '60%';
                $dropdown[70] = '70%';
                $dropdown[80] = '80%';
                $dropdown[90] = '90%';
                $dropdown[100] = '100%';

                function makeDropdownProcent($dropdown,$default=null) {
                  $str = '';
                  foreach($dropdown as $val => $name) {
                    if( $default == $val )
                      $selected = 'SELECTED';
                    else
                      $selected = '';
               
                    $str .= "<option value=\"$val\" $selected>$name</option>\n";
                  }
                  return $str;
                }

                print '<tr><td>Status:</td><td><select name="status" size="1">';
                print makeDropdownProcent($dropdown,$prioritet);
                print '</select></tr></td>';
Avatar billede jonas_j Nybegynder
19. august 2004 - 17:10 #6
må variablerne ikke hedde det samme?
Avatar billede dennismp Nybegynder
19. august 2004 - 17:23 #7
Hvis du skal have to dropdowns, så skal du bare lave to arrays med værdierne. Du kan sagents genbruge funktionen..

// Vi har kun behov for een dropdown funktion
function makeDropdownOptions($dropdown,$default=null) {
  $str = '';
  foreach($dropdown as $val => $name) {
    if( $default == $val )
      $selected = 'SELECTED';
    else
      $selected = '';

    $str .= "<option value=\"$val\" $selected>$name</option>\n";
  }
  return $str;
}

$dropdownPri = array();
$dropdownPri[0] = 'Ikke defineret';
$dropdownPri[1] = '1';
$dropdownPri[2] = '2';
$dropdownPri[3] = '3';
$dropdownPri[4] = '4';
$dropdownPri[5] = '5';
$dropdownPri['løbende'] = 'Løbende';

$dropdownProcent = array();
$dropdownProcent[0] = '0%';
$dropdownProcent[10] = '10%';
$dropdownProcent[20] = '20%';
$dropdownProcent[30] = '30%';
$dropdownProcent[40] = '40%';
$dropdownProcent[50] = '50%';
$dropdownProcent[60] = '60%';
$dropdownProcent[70] = '70%';
$dropdownProcent[80] = '80%';
$dropdownProcent[90] = '90%';
$dropdownProcent[100] = '100%';

print '<tr><td>Status:</td><td><select name="status" size="1">';
print makeDropdownOptions($dropdownProcent,$procent);
print '</select></tr></td>';

og

print '<select name="prioritet" size="1">';
print makeDropdownOptions($dropdownPri,$prioritet);
print '</select>';
Avatar billede dennismp Nybegynder
19. august 2004 - 17:23 #8
Nej, variablerne må ikke hedde det samme, for så overskriver du de gamle værdier med de nye..
Avatar billede jonas_j Nybegynder
19. august 2004 - 17:29 #9
hmm den gemmer ikke værdien af procent, den bliver nulstillet hver gang?
Avatar billede jonas_j Nybegynder
25. august 2004 - 14:09 #10
jhg
Avatar billede dennismp Nybegynder
25. august 2004 - 15:23 #11
?
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