Avatar billede gregorian Nybegynder
19. maj 2003 - 20:13 Der er 24 kommentarer og
1 løsning

hvordan sætter man value i en listboks?

tag først lige et kig på min test side..
http://www.gregorian.dk/tutorials_skabelon.php

de bokse(list) som er øverst på siden er problemet..
nu fortæller jeg lige hvad jeg gerne vil have lavet.

når man i den første til venstre vælger et nummer, submitter den værdien og reloader siden.. derpå med den oplysning har jeg så hentet yderligere informationer som kan vælges i næste boks.. DOG husker den ikke hvad jeg valgte i forrige boks(list)

det jeg mangler er: ligesom mad alm bokse kan man sige value="blabla" hvordan gør man i list bokse?

håber i forstår mig ! ;)


btw: undlad venligst at rode med submit knappen i bunden, da den tilføjer til min db! tak!
Avatar billede schaefner Juniormester
19. maj 2003 - 20:16 #1
<option value="hej" selected>Hej</option>
Avatar billede schaefner Juniormester
19. maj 2003 - 20:18 #2
Du kan måske bruge noget herfra: http://razor.dk/php.functions.php

Prøv at kigge på: select_box()
Avatar billede gregorian Nybegynder
19. maj 2003 - 20:20 #3
ok kigger lige om det lidt senere.. regner med at det er alt! giver pointene lidt senere når jeg lige har kigget på det
Avatar billede fangel Nybegynder
19. maj 2003 - 20:23 #4
kort fortalt går det ud på at du tjekker om variablen fra en værdi findes... hvis den gør det var det den der var valgt, og derfor skal PHP skrive "selected" i form taget...

Morten
Avatar billede Slettet bruger
19. maj 2003 - 20:43 #5
Det hedder ikke en tuturial men en tutorial :)
Avatar billede Slettet bruger
19. maj 2003 - 20:45 #6
I en af dine tutorials skriver du iøvrigt det her:

< ?
print www.Gregorian.dk;
eller
echo www.Gregorian.dk;
?>

Nu vil din browser skrive www.Gregorian.dk når du åbner siden. prøv selv at lave et php dokument inden du går videre.

Nej, din browser vil melde at der er fejl i dit PHP script.

Måske du skulle vente med at offentliggøre dem før du har lært PHP?


;)
Avatar billede gregorian Nybegynder
19. maj 2003 - 20:49 #7
kig lige her:
http://www.gregorian.dk/1.php

kode:

<form name="id" method="post" action="<?=$PHP_SELF;?>">
<select name="select-id" size="1" id="select-id" title="&lt;test" onChange="this.form.submit()">
<option>id nummer</option>
<?
// finder antal id's
    include('connect.php');
   
    $query_id = mysql_query("select count(*) as id from tutorials");
        $row_id = mysql_fetch_array($query_id);
       
        $_SESSION['antal_id'] = $row_id[id];
   
            $int = 1;
            while($int <= $_SESSION['antal_id']){
                $query_id = mysql_query("select id from tutorials where id = '$int'");
                $row_id = mysql_fetch_array($query_id);
               
                if(!empty($row_id[id])){
?>
<option value="<? print $row_id[id]; ?>"><? print $row_id[id]; ?></option>           
<?
               
                }
                $int++;
            }
       
?>
</select>
</form>

hvis du vælger en værdi på siden beholder den ikke værdien når den er oppdateret.. jeg sætter værdien vha option value=""..
men hvis jeg sætter den forsvinder mine andre muligheder som jeg henter fra min db. de skal stadigvæk være der, men bare en den forrige værdi som valgt.
Avatar billede fangel Nybegynder
19. maj 2003 - 20:49 #8
"< ?" er vel heller ikke helt vellidt? kræver at short-tags er sat til, og så skal det være uden " "...

ALTSÅ:

<?php
print "www.gregorian.dk"; // eller print 'www.....dk';
//eller
echo "www.....dk"; // eller echo 'www.....dk';
?>

Morten
Avatar billede gregorian Nybegynder
19. maj 2003 - 20:50 #9
tja.. har ikke læst den ene tutorial jeg har igennen endnu og gør det egentlig ikke endnu da jeg egentlig kun gide r at kode lige nu.. ikke prøve at lave et stort forum.. det kommer vel med tiden! ;)
Avatar billede schaefner Juniormester
19. maj 2003 - 20:57 #10
Utestet:

<?php
if($row_id[id] == $_POST['select-id']) {
  echo "<option value="$row_id[id]" selected>$row_id[id]</option>";
} else {
  echo "<option value="$row_id[id]">$row_id[id]</option>";
}
?>
Avatar billede fangel Nybegynder
19. maj 2003 - 21:01 #11
det er ikke verdens bedste kode... prøv somsagt at programmere PHP før du giver dig ikast med at lære andre det... ;)

---
<form name="id" method="post" action="<?=$PHP_SELF;?>">
<select name="select-id" size="1" id="select-id" title="&lt;test" onChange="this.form.submit()">
<option>id nummer</option>
<?
// finder antal id's
    include('connect.php');
 
    $query = mysql_query("SELECT id FROM tutorials");
    $num_row = mysql_num_rows($query);
    while($data = mysql_fetch_row($query)){ // en løkke der giver os alle de IDer der findes i et array, så vi ikke lave et nyt query hver gang vi skal tjekke et ID
        $IDs[] = $data[0];
    }
     
    $_SESSION['antal_id'] = $num_row; // kan ikke se nogle id i at gemme det i en session, men kan være du skal bruge det til noget
 
    for($i=0;$i < $num_row; $i++){ // for-løkker er kortere at skrive, og der er ingen grund til at bruge session variablen...
             
            if(in_array($i,$IDs){
                if(isset($_POST['select-id']) AND $_POST['select-id'] == $i) echo "<option value=\"" . $row_id['id'] . "\" selected>" .  $row_id[id]; . "</option>";
                else echo "<option value=\"" . $row_id['id'] . "\">" .  $row_id[id]; . "</option>";           
            }
        }
     
?>
</select>
</form>
---

Morten
Avatar billede gregorian Nybegynder
19. maj 2003 - 21:34 #12
giver en fejl her i linien. Som du nu har pointeret er jeg ikke haj til php endnu, så hvad betyder de '.' du bruger ... helt præcist .. hvad de bruges til?
takker

  if(isset($_POST['select-id']) AND $_POST['select-id'] == $i) echo "<option value=\"" . $row_id['id'] . "\" selected>" . $row_id[id]; . "</option>";

Michael
Avatar billede gregorian Nybegynder
19. maj 2003 - 21:36 #13
begyndte for godt 2 måneder siden at skrive php.. har egentlig aldrig før rodet med det, så ja det er ikke den mest advancerede kode. men har egentlig den plan at skrive lidt tutorials efterhånden som jeg lærer.. på den måde vil der jo til sidst være tutorials helt fra bunden til nybegyndere ligesom mig!

c the point?
Avatar billede schaefner Juniormester
19. maj 2003 - 21:39 #14
if(isset($_POST['select-id']) && $_POST['select-id'] == $i) echo "<option value=\"$row_id[id]\" selected>$row_id[id]</option>";
Avatar billede fangel Nybegynder
19. maj 2003 - 21:43 #15
"." bruges når du skal skifte mellem typer...

echo "hej" . 'med' . $var;

istedet for at lave 3 echo linier...

schaefner => OK, du fandt fejlen... troede ellers godt man måtte bruge AND, eller er der andre fejl?

Morten
Avatar billede gregorian Nybegynder
19. maj 2003 - 21:45 #16
ja der er et par .. den viser ikke id-erne i boksen nu!'

link: www.gregorian.dk/1.php

kode:
<form name="id" method="post" action="<?=$PHP_SELF;?>">
<select name="select-id" size="1" id="select-id" title="&lt;test" onChange="this.form.submit()">
<option>id nummer</option>
<?
// finder antal id's
    include('connect.php');
 
    $query = mysql_query("SELECT id FROM tutorials");
    $num_row = mysql_num_rows($query);
    while($data = mysql_fetch_row($query)){ // en løkke der giver os alle de IDer der findes i et array, så vi ikke lave et nyt query hver gang vi skal tjekke et ID
        $IDs[] = $data[0];
    }
     
    $_SESSION['antal_id'] = $num_row; // kan ikke se nogle id i at gemme det i en session, men kan være du skal bruge det til noget
 
    for($i=0;$i < $num_row; $i++){ // for-løkker er kortere at skrive, og der er ingen grund til at bruge session variablen...
             
            if(in_array($i,$IDs)){
                if(isset($_POST['select-id']) && $_POST['select-id'] == $i) echo "<option value=\"$row_id[id]\" selected>$row_id[id]</option>";
                else echo "<option value=\"$row_id[id]\">$row_id[id]</option>";
                                                                                       
            }
        }
     
?>
</select>
</form>
Avatar billede schaefner Juniormester
19. maj 2003 - 21:45 #17
Skrev kun && fordi det var kortere ;)
Tror det var din ; efter $row_id[id]
Avatar billede fangel Nybegynder
19. maj 2003 - 21:57 #18
schaefner => doh...

gregorian => har fundet fejlen... men kræver lige lidt omtanke... ;)

lav for() linien om til:

for($i=0;$i <= max($IDs); $i++){

Morten
Avatar billede gregorian Nybegynder
19. maj 2003 - 22:37 #19
ved egentlig ik helt hvor og med hvilken array man skal skrive det ud med, men der er ingen værdier udskrevet i selectboksen

kode:

<form name="id" method="post" action="<?=$PHP_SELF;?>">
<select name="select-id" size="1" id="select-id" title="&lt;test" onChange="this.form.submit()">
<option>id nummer</option>
<?
// finder antal id's
    include('connect.php');
 
    $query = mysql_query("SELECT id FROM tutorials");
    $num_row = mysql_num_rows($query);
    while($data = mysql_fetch_row($query)){ // en løkke der giver os alle de IDer der findes i et array, så vi ikke lave et nyt query hver gang vi skal tjekke et ID
        $IDs[] = $data[0];
    }
     
    $_SESSION['antal_id'] = $num_row; // kan ikke se nogle id i at gemme det i en session, men kan være du skal bruge det til noget
 
    for($i=0;$i <= max($IDs); $i++){ // for-løkker er kortere at skrive, og der er ingen grund til at bruge session variablen...
             
            if(in_array($i,$IDs)){
                if(isset($_POST['select-id']) && $_POST['select-id'] == $i) echo "<option value=\"$row_id[id]\" selected>$row_id[id]</option>";
                else echo "<option value=\"$row_id[id]\">$row_id[id]</option>";
                                                                                       
            }
        }
     
?>
</select>
</form>

umiddelbart ville jeg sige det var $data[id] man der burde.. er jeg helt galt på den?
Avatar billede sostack Nybegynder
20. maj 2003 - 14:21 #20
hvor bliver $row_id[id] defineret ??
mon ikke det skal være $IDs[$i] ??

//sostack
Avatar billede gregorian Nybegynder
20. maj 2003 - 15:05 #21
var den sostack, men den skriver ikke alle sammen ud!
kriteriet havde jeg glemt at skrive ind i queryen, men er gjort nu..

har i min db, hvor del = 1 de skal udskrives men den tager kun den ene!!
why

kode:

    include('connect.php');
 
    $query = mysql_query("SELECT id FROM tutorials WHERE del = 1");
    while($data = mysql_fetch_row($query)){ // en løkke der giver os alle de IDer der findes i et array, så vi ikke lave et nyt query hver gang vi skal tjekke et ID
        $IDs[] = $data[0];
    }

    for($i=0; $i <= max($IDs); $i++){ // for-løkker er kortere at skrive, og der er ingen grund til at bruge session variablen...
             
            if(in_array($i,$IDs)){
                if(isset($_POST['select-id']) && $_POST['select-id'] == $i) echo "<option value=\"$IDs[$i]\" selected>$IDs[$i]</option>";
                else echo "<option value=\"$IDs[$i]\">$IDs[$i]</option>";
            }
    }

db:
id  del  sprog  Overskrift  Indledning  Underoverskrift  Tekst  Kode  Slutkommentar 
---------------------------------------------------------------------------------------
1    1    php      bla            bla            bla                bla    bla        bla
1    2    php      bla            bla            bla                bla    bla        bla
1    3    php      bla            bla            bla                bla    bla        bla
1    4    php      bla            bla            bla                bla    bla        bla
2    1    php      bla            bla            bla                bla    bla        bla
2    2    php      bla            bla            bla                bla    bla        bla
----------------------------------------------------------------------------------------
Avatar billede fangel Nybegynder
20. maj 2003 - 15:45 #22
sostack => næsten... ;)

det skal være:

nclude('connect.php');

    $query = mysql_query("SELECT id FROM tutorials WHERE del = 1");
    while($data = mysql_fetch_row($query)){ // en løkke der giver os alle de IDer der findes i et array, så vi ikke lave et nyt query hver gang vi skal tjekke et ID
        $IDs[] = $data[0];
    }

    for($i=0; $i <= max($IDs); $i++){ // for-løkker er kortere at skrive, og der er ingen grund til at bruge session variablen...
           
            if(in_array($i,$IDs)){
                if(isset($_POST['select-id']) && $_POST['select-id'] == $i) echo "<option value=\"$i\" selected>$i</option>";
                else echo "<option value=\"$i\">$i</option>";
            }
    }

man skal bare bruge $i... ;) $IDs har bare en fortløbende key... ;)

Morten
Avatar billede gregorian Nybegynder
20. maj 2003 - 18:22 #23
takker for hjælpen alle sammen!
Avatar billede gregorian Nybegynder
20. maj 2003 - 18:35 #24
dea_pg post lige et svar..

schaefner .. lidt problematisk for mig.. i begge 2 hjalp meget.. ligemeget hver vil jeg sige.. dai_pg hjalp m problemet til det var løst så!..
Avatar billede fangel Nybegynder
20. maj 2003 - 18:44 #25
Svaa'r
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