Avatar billede nyst Nybegynder
01. juli 2005 - 11:43 Der er 7 kommentarer og
1 løsning

form select og vis value fra DB

Hi,
jeg har en fil som henter og lister alle filer som ser sådan her ud:

<form method="post" action="list.php">
<input type="text" name="sider" value="Klik til siderne">
<input type="submit" value="Vis">
</form>

list.php ser sådan ud:

    if (isset($_POST['sider'])) {
    $hent = mysql_query("SELECT indeks, list FROM sider WHERE list<>'' ORDER BY list") or die(mysql_error());
    print "Klik på linket til den side du ønsker at rette i:<br /><br />";
  while ($data = mysql_fetch_array($hent)) {
    echo "&raquo; <a href='ret.php?indeks=".$data['indeks']."&tabel=".$_POST['sider']."'>".$data['list']."</a><br />";
  }
   
og alt virker ok...   


Det jeg dog gerne vil i stedet for er at vælge filer for hver 'afd' via select og har puslet med denne:

<form method="post" action="list.php">
<select name="afd" onchange="location.href = this.options[this.selectedIndex].value" style="font-size : 9px;">
<option value=" " selected>Vælg afdeling &raquo;</option>
<option value="700">afd 7</option>
<option value="800">afd 8</option>
(osv osv)
</select>
    <noscript>
  <input type="submit" value=" &raquo; " style="font-size : 9px;" />
  </noscript>
</form>

dog kan jeg ikke få den til at vise noget den skifter bare til en side den ikke kan finde som så hedder feks /800

Kan du hjælpe med denne løsning???
Avatar billede nielle Nybegynder
01. juli 2005 - 17:33 #1
Lav en side, f.eks. afd.php, som kaldes med et argument, f.eks. afdid, og såp viser den afdeling som høre til det id. For at se afdeling 800 skal man altså indtaste url'et:

afd.php?afdid=800

Når du har sådan en så kan dit problem løses med:

<form method="post" action="list.php">
<select name="afd" onchange="if (this.value != "") location.href = this.value" style="font-size : 9px;">
<option value="" selected>Vælg afdeling &raquo;</option>
<option value="afd.php?afdid=700">afd 7</option>
<option value="afd.php?afdid=800">afd 8</option>
(osv osv)
</select>
<noscript>
<input type="submit" value=" &raquo; " style="font-size : 9px;" />
</noscript>
</form>
Avatar billede nyst Nybegynder
02. juli 2005 - 22:43 #2
hejsa,
det fatter jeg ikke helt
'post' giver jo siden list.php
skal jeg så yderligere have en side afd.php og hvad skal den og hvordan leder den over til list.php

håber ud gider skære det ud i pap*G*

:-)
Avatar billede nielle Nybegynder
02. juli 2005 - 23:33 #3
I dit eget kodeeksempel har du denne:

<select name="afd" onchange="location.href = this.options[this.selectedIndex].value" style="font-size : 9px;">

Den vil gå helt uden om formen (formen vil ikke blive submittet). Den har jeg egentligt bare beholdt, men dog gjort lidt mere simpel.

I dit eksempel er det den som er ansvarlig for den mystiske opførelse; Hvis du f.eks. trykker på option ”afd 8”, så sendes du til siden ”800”. Denne eksistere selvfølgelig bare ikke. Mit løsningsforeslag retter på på dette ved at ændre de ”800” til noget mere fornuftigt som f.eks. ”afd.php?afdid=800”. Dette er nemlig noget browseren kan forstå – hvis der altså eksistere en side som hedder afd.php.

Du har allerede en form, og jeg kan forstå at du gerne vil kunne vælge en option fra listen og så trykke på submit-knappen? Jamen, det er ikke noget problem: Så skal du bare helt fjerne den der onchange:

<form method="post" action="list.php">
<select name="afd">
<option value=" " selected>Vælg afdeling &raquo;</option>
<option value="700">afd 7</option>
<option value="800">afd 8</option>
(osv osv)
</select>
<input type="submit" value=" &raquo; " style="font-size : 9px;" />
</form>

Læg mærke til at jeg også har fjernet din <noscript>.
Avatar billede nyst Nybegynder
04. juli 2005 - 09:11 #4
Hi, jeg har nu ændret til ovennævnte og den finder siden list.php, men lidter ikke nogle filer. Retter jeg <select name="afd"> til <select name="sider"> lister den selvfølgelig alle sider.

Jeg skal nu bare have den til kun at liste feks alle sider i DB hvor afd=700, så det må vil være dette udtryk der skal ændres

    if (isset($_POST['sider'])) {
    $hent = mysql_query("SELECT indeks, list FROM sider WHERE list<>'' ORDER BY list") or die(mysql_error());
    print "Klik på linket til den side du ønsker at rette i:<br /><br />";
  while ($data = mysql_fetch_array($hent)) {
    echo "&raquo; <a href='ret.php?indeks=".$data['indeks']."&tabel=".$_POST['sider']."'>".$data['list']."</a><br />";
  }

eller er jeg gal på den igen???

:-)
Avatar billede nielle Nybegynder
04. juli 2005 - 17:39 #5
Jeg er ikke helt sikker på hvad du præcis mener  med ”jeg har nu ændret til ovennævnte” - der har jo været nogle forskelligevariationer. Kunne du derfor ikke lige poste din nuværendekode?

Hvis din kode ser s¨ådan her ud:

<form method="post" action="list.php">
<select name="afd">
<option value=" " selected>Vælg afdeling &raquo;</option>
<option value="700">afd 7</option>
<option value="800">afd 8</option>
(osv osv)
</select>
<input type="submit" value=" &raquo; " style="font-size : 9px;" />
</form>

- så skal du finde den ønskede afdeling ved at spørge på værdien af $_POST["afd"]. Dette skal på en eller anden måde indgå i dit SQL udtryk. Nu ved jeg jo ikke hvordan din tabel ser ud, så dette bliver kun et gæt:

if (isset($_POST['afd']))
{
    $SQL = "SELECT indeks, list FROM sider WHERE list<>'' AND afd=" . $_POST['afd'] . " ORDER BY list";

    $hent = mysql_query($SQL) or die(mysql_error());

    print "Klik på linket til den side du ønsker at rette i:<br /><br />";
    while ($data = mysql_fetch_array($hent)) {
    echo "&raquo; <a href='ret.php?indeks=".$data['indeks']."&tabel=".$_POST['sider']."'>".$data['list']."</a><br />";
}
Avatar billede nyst Nybegynder
05. juli 2005 - 12:02 #6
Hej,
det funker så jeg takker for din hjælp og du smider et svar*S*

Det var AND afd=" . $_POST['afd'] . " der gjorde den store forskel.

:-)
Avatar billede nielle Nybegynder
06. juli 2005 - 08:28 #7
Svar :^)
Avatar billede nyst Nybegynder
06. juli 2005 - 10:18 #8
Takker *S*
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