Avatar billede tvilling53 Seniormester
11. juni 2015 - 18:02 Der er 16 kommentarer og
1 løsning

valg fra dropdownbox

Hej
Jeg har følgende linie der henter ord fra en database:
$ord_liste=hent_tekst($mysqli,$data2);
som så lægges over i en dropdownbox med denne kode:
  <form action="slet_fra_dato.php" method="post">
    <select name="tekst" size="1">
              <?php    foreach($ord_liste as $value)
              {
                  ?>
                    <option value="<?=$value?>"><?=$value?></option>
                  <?php
             
              }
              ?>
                   
      <input type="submit" value="Slet"/>     
  </select>

alle de forskellige ord kommer til at stå i boxen og de kan også vælges, men det valgte ord kommer ikke med over når der trykkes på submit..
Hvor er fejlen???
Thomas V
Avatar billede showsource Seniormester
11. juni 2015 - 19:21 #1
Skud i tågen:
Flyt din submit udenfor for select element.
Altså:

  </select>
    <input type="submit" value="Slet"/>
Avatar billede tvilling53 Seniormester
11. juni 2015 - 19:31 #2
Hej
Forslaget er afprøvet men ingen ændringer
Thomas V
Avatar billede showsource Seniormester
11. juni 2015 - 19:39 #3
Så prøv:
print_r($hent_tekst);
for at tjekke ordene.

Og ellers så prøv at droppe dine "short-tags" som du bruger i foreach()
Skal der ikke være ; på short-tags ?????
<?=$value?> => <?=$value;?>
(bruger dem aldrig selv)
Avatar billede showsource Seniormester
11. juni 2015 - 19:40 #4
print_r($ord_liste);
selvf. ......
Avatar billede showsource Seniormester
11. juni 2015 - 19:49 #5
Nå, hvad skriver du i slet_fra_dato.php ???
Avatar billede showsource Seniormester
11. juni 2015 - 19:51 #6
Der kan du jo starte med at prøve:

print_r($_POST);
exit;

for at se hvad der egentlig bliver postet til filen.
Avatar billede tvilling53 Seniormester
11. juni 2015 - 20:09 #7
hej
i slet.php skriver jeg print_($ord_liste) og de ord som står i databasen bliver echo-et.

i slet_fra_dato skriver jeg:

$str = $_POST['tekst'];
$dag=$_POST['dag'];
$md=$_POST['md'];
$aar=$_POST['aar'];
$fra=$aar.$md.$dag;
echo '<br>TEKST er = '.$str;
echo '<br> FRA er = '.$fra; 

$Dato giver det valg som er foretaget
$str er tom.

thomas V
Avatar billede tvilling53 Seniormester
11. juni 2015 - 20:11 #8
Hej rettelse:
$Dato giver det valg som er foretaget skal være
$fra giver det valg som er foretaget

thomas V
Avatar billede showsource Seniormester
11. juni 2015 - 20:34 #9
Stensikker på at det er fordi du får rodet lidt rundt i koderne i dine filer.
Avatar billede tvilling53 Seniormester
11. juni 2015 - 20:54 #10
hej
jeg synes nu ikke at jeg roder rundt i mine koder så her er kronologisk rækkefølge:

$ord_liste=hent_tekst($mysqli,$data2);
print_r($ord_liste); udskriver de ord der er i databasen. Derefter prøver jeg at lægge ordene i en dropdownbox med følgende kode:

<form action="slet_fra_dato.php" method="post">
    <select name="tekst" size="1">
              <?php    foreach($ord_liste as $value)
              {
                  ?>
                    <option value="<?=$value?>"><?=$value?></option>
                  <?php
             
              }
              ?>
        </select>
        <select  name="dag" size="1">
        </select>
        <select  name="md" size="1">
        </select>
        <select name="aar" size ="1"
        </select>
    <input type="submit" value="Slet"/> 
  </form 

i filen slet_fra_dato er koden for nuværende:

$str = $_POST['tekst'];
$dag=$_POST['dag'];
$md=$_POST['md'];
$aar=$_POST['aar'];
$fra=$aar.$md.$dag;
echo '<br>STR er = '.$str;
echo '<br> FRA er = '.$fra;

$str udskriver ingenting.
$fra udskriver de valgte værdier.

jeg kan ikke se at jeg roder ret meget i min kode, men du må da gerne fortælle mig hvor det er at jeg roder fordi jeg er ikke nogen ørn til det her og jeg vil da meget gerne lære at gøre det rigtig..

Thomas V
Avatar billede sonalias Seniormester
11. juni 2015 - 21:11 #11
<input type="submit" value="Slet"/>
Burde det ikke være
<input type="submit" value=$value?/>
Avatar billede tvilling53 Seniormester
11. juni 2015 - 21:17 #12
Hej
<input type="submit" value="Slet"/>
er den værdi der vises på submit-knappen..

Jeg er næsten sikker på at fejlen ligger her:

<form action="slet_fra_dato.php" method="post">
    <select name="tekst" size="1">
              <?php    foreach($ord_liste as $value)
              {
                  ?>
                    <option value="<?=$value?>"><?=$value?></option>
                  <?php
             
              }
              ?>
        </select>
men jeg kan ikke se hvor den er henne..desværre.

Thomas V
Avatar billede olsensweb.dk Ekspert
12. juni 2015 - 09:56 #13
#10
<select name="aar" size ="1"
</select>

her mangler din select at blive afsluttet (>)

lavede et kort test eks bseret på din code, der virker

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <?php
        $ord_liste = array("hest", "hund", "kat", "mus"); // skal komme fra db
        ?>
        <form action="slet_fra_dato.php" method="post">
            <select name="tekst" size="1">
                <?php
                foreach ($ord_liste as $value) {
                    ?>
                    <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
                    <?php
                }
                ?>
            </select>
            <select  name="dag" size="1">
                <?php
                for ($i = 1; $i <= 31; $i++) {
                    ?>
                    <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
                    <?php
                }
                ?>
            </select>
            <select  name="md" size="1">
                <?php
                for ($i = 1; $i <= 12; $i++) {
                    ?>
                    <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
                    <?php
                }
                ?>
            </select>
            <select name="aar" size ="1">
                <?php
                for ($year_now = date("Y"), $year_start = $year_now - 10; $year_start <= $year_now; $year_start++) {
                    ?>
                    <option value="<?php echo $year_start; ?>"><?php echo $year_start; ?></option>
                    <?php
                }
                ?>
            </select>
            <input type="submit" value="Slet"/>
        </form>
    </body>
</html> 


slet_fra_dato.php
   
<?php
$str = $_POST['tekst'];
$dag=$_POST['dag'];
$md=$_POST['md'];
$aar=$_POST['aar'];
$fra=$aar.$md.$dag;
echo '<br>STR er = '.$str;
echo '<br> FRA er = '.$fra;
?>
Avatar billede tvilling53 Seniormester
12. juni 2015 - 11:11 #14
Hej
Efter en lang nat og mange forsøg endte denne kode som jeg startede med:

<form action="slet_fra_dato.php" method="post">
    <select name="tekst" size="1">
              <?php    foreach($ord_liste as $value)
              {
                  ?>
                    <option value="<?=$value?>"><?=$value?></option>
                  <?php
             
              }
              ?>
        </select>
        <select  name="dag" size="1">
        </select>
        <select  name="md" size="1">
        </select>
        <select name="aar" size ="1">
        </select>
    <input type="submit" value="Slet"/> 
  </form 

i filen slet_fra_dato er koden for nuværende:

$str = $_POST['tekst'];
$dag=$_POST['dag'];
$md=$_POST['md'];
$aar=$_POST['aar'];
$fra=$aar.$md.$dag;
echo '<br>STR er = '.$str;
echo '<br> FRA er = '.$fra;

$str udskriver ingenting.
$fra udskriver de valgte værdier.

til at blive denne som virker:

<form action="slet_fra_dato.php" method="post">
      <select  name="valg" size="1">
          <?php    $id=1; foreach($ord_liste as $value)
            {
            ?>
              <option value="<?=$ord_liste[$id]?>"><?=$value?> /option>
            <?php
              $id++;
            }
          ?>
        </select>
        <select  name="dag" size="1">
        </select>
        <select  name="md" size="1">
        </select>
        <select name="aar" size ="1"
        </select>
    <input type="submit" value="Slet"/> 
  </form 

i filen slet_fra_dato er koden for nuværende:

$str = $_POST['tekst'];
$dag=$_POST['dag'];
$md=$_POST['md'];
$aar=$_POST['aar'];
$fra=$aar.$md.$dag;
echo '<br>STR er = '.$str;
echo '<br> FRA er = '.$fra;

$str udskriver den valgte værdi.
$fra udskriver de valgte værdier.

Så er spørgsmålet hvem der skal have points, for selv om den rette løsning ikke kom fra indlægene så gav det alligevel inspiration til at finde løsningen og jeg takker for indsatsen.

ronols gav en anden og mere overskuelig måde at skrive en <select> på så læg et svar så kan du dele point med showsource.

Thomas V
Avatar billede olsensweb.dk Ekspert
12. juni 2015 - 13:43 #15
du får et svar her.

jeg ville overveje om der ikke skal foranstillede nul på talene 1-9.
så vil din dato string altid være lige lang


  
<?php
//http://stackoverflow.com/questions/11222091/displaying-the-0-in-front-of-a-number
// http://php.net/str_pad
function ZeroFront($num, $size=3) {
    return str_pad($num, $size, "0", STR_PAD_LEFT);   
}
?>

<select  name="dag" size="1">
    <?php
    for ($i = 1; $i <= 31; $i++) {
        ?>
        <option value="<?php echo ZeroFront($i, 2); ?>"><?php echo ZeroFront($i, 2); ?></option>
        <?php
    }
    ?>
</select>
Avatar billede tvilling53 Seniormester
12. juni 2015 - 13:55 #16
Hej
Det er i alle tilfælde nemmere at behandle dataerne når udgangspunktet er det samme.
Jeg venter lige lidt med at acceptere dit svar indtil showsource har lagt et svar hvis det da er ok med dig.

Thomas V
Avatar billede showsource Seniormester
14. juni 2015 - 05:54 #17
Jeg springer et svar over her.
Godt du fandt løsning.
Overså iøvrigt selv afslutning af select
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