Avatar billede Slettet bruger
29. maj 2008 - 18:51 Der er 36 kommentarer og
1 løsning

Vælg fra menu/list

Hej.

Jeg er kommet til at jeg kan hente noget data i mysql og sætte ind i en select. Så langt så godt. Jeg vil gerne have at når man klikker på et af de felter der ruller ned, så farer den videre til en anden side, hvor man kan arbejde med alle data.

Jeg kan bare ikke finde ud af at lave det sidste. Her er den kode jeg har indtil nu. Den henter data og viser i dropdown menuen:

    <?php
    $hent = mysql_query("SELECT Bruger FROM `PC-Type`") or die(mysql_error());
    ?>
<form action="OpdaterPCen.php" method="post" target="_parent">
    <select name='Bruger' size="1">
    <option value="<?php echo $row_Brugeren['Bruger']; ?>">Vælg bruger</option>
    <?php while($row = mysql_fetch_array($hent)) {
    echo "<option  value='$row[Bruger]'>$row[Bruger]</option>";
    }
    ?>
    </select>
</form>


Ole.
Avatar billede majbom Novice
29. maj 2008 - 19:11 #1
<select onchange="window.location.href='dinside.php?bruger=this.options[this.selectedIndex].value'"><option>...
</select>
Avatar billede Slettet bruger
29. maj 2008 - 19:16 #2
Det ligner ikke lige php i mine øjne, og jeg synes heller ikke jeg lige kan se hvordan jeg blander det sammen med det jeg har, så det virker.

Kan du hjælpe med det ? Altså putte det du skriver ind i den kode jeg har sendt med ?
Avatar billede majbom Novice
29. maj 2008 - 19:24 #3
nej det er javascript, du kan ikke lave det i ren php, da det er serverside-sprog og det du ønsker er at der skal ske noget når man vælger en option i din select.

den den ør her, er at tage value fra den option man vælger og tager med over til siden dinside.php

dette skal selvfølgelig rettes så den gøre videre til den side du har lavet til formålet
Avatar billede Slettet bruger
29. maj 2008 - 19:26 #4
Ja det er fint. Mit problem er at der er en select i forvejen. Skal jeg så sætte din linie ind i stedet for min ? Eller hvordan skal jeg gøre det ? det er det jeg ikke rigtig kan se.
Avatar billede majbom Novice
29. maj 2008 - 19:33 #5
nååh sorry...

du sætter bare dette:

onchange="window.location.href='dinside.php?bruger=this.options[this.selectedIndex].value'"

ind i din select og retter "dinside.php"
Avatar billede Slettet bruger
29. maj 2008 - 19:35 #6
Okay. Men sidenavnet står jo i form linien, skal den så smides væk :-) ?
Avatar billede Slettet bruger
29. maj 2008 - 19:41 #7
Prøvede lige at sætte linien ind, men det giver denne:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `PC-Type`' at line 1
Avatar billede majbom Novice
29. maj 2008 - 19:44 #8
ja den behøves du ikke, du kan oså beholde den og lave så den submitter formen, hvis du f.eks. har andre felter i din form du skal have med over til den ny side.

det er en sql-fejl du får, du må lave en sql-query på den ny side, der ikke fungerer
Avatar billede Slettet bruger
29. maj 2008 - 19:49 #9
Ok, den skulle lige have ' omkring variablen jeg havde hentet, men desværre er den åbenbart tom, for den viser kun tomme felter :-)

Men jeg har da noget at køre videre med. Det var aktiviteten jeg ikke kunne finde ud af. Har du en idé til det er du vwelkommen til at skrive løs :-) men du har løst mit spørgsmål, så næste gang må du gerne lave et svar.
Avatar billede majbom Novice
29. maj 2008 - 19:53 #10
hvordan ser din sql-query ud?
Avatar billede Slettet bruger
29. maj 2008 - 19:55 #11
Den ser sådan ud, hvis det altså er den du mener (det er på den sider den går over til):

$OpdaterPCen = mysql_query($query_OpdaterPCen, $PC_Base) or die(mysql_error());
Avatar billede majbom Novice
29. maj 2008 - 19:57 #12
hmm den forstår jeg ikke, hvad er det du gerne vil?
Avatar billede Slettet bruger
29. maj 2008 - 19:59 #13
Jeg vil bare hente alle brugernavne i en menu/list og når jeg så klikker på den skal den gå til en anden side, hvor den henter alle data på den navn, og man kan så rette og gemme det.

Det virker også før jeg rettede, men kun på nummer 1, da der jo ingen valg var på den.

Så forsøger jeg at lave det valg og kalde en bestemt frem ud fra brugerens navn. Det kunne også være et andet felt, men man skal jo begynde et sted.

Kan du finde ud af hvad jeg mener ?
Avatar billede majbom Novice
29. maj 2008 - 20:05 #14
$OpdaterPCen = mysql_query(select * from DIN_TABEL where bruger='$_GET[bruger]') or die(mysql_error());

den henter alt fra tabellen DIN_TABEL hvor brugernavnet svarer til det du har valgt i din select
Avatar billede Slettet bruger
29. maj 2008 - 20:11 #15
Ja ok, men den får ikke brugernavn med over på den anden side.

Jeg satte en echo ind så den kunne starte med at vise indholdet, men det er tomt, derfor viser den ikke noget i felterne.

Jeg får ikke data med over på den nye side.
Avatar billede Slettet bruger
29. maj 2008 - 20:17 #16
Min form ser sådan ud nu:

    <?php
    $hent = mysql_query("SELECT Bruger FROM `PC-Type`") or die(mysql_error());
    ?>
<form method="post" target="_parent">
    <select name="Bruger" onchange="window.location.href='OpdaterPCen.php?Bruger=this.options[this.selectedIndex].value'" size="1">
    <option value="<?php echo $row_Brugeren['Bruger']; ?>">Vælg bruger</option>
    <?php while($row = mysql_fetch_array($hent)) {
    echo "<option  value='$row[Bruger]'>$row[Bruger]</option>";
    }
    ?>
    </select>
</form>
Avatar billede majbom Novice
29. maj 2008 - 20:27 #17
når du kommer til den nye side står der noget á la "dinside.php?bruger=", ikke?

står der ikke noget efter lighedstegnet efter "bruger"?

har du et link til siden, eller er det lokalt?
Avatar billede Slettet bruger
29. maj 2008 - 20:31 #18
På den nye side står der:

$Brugeren = $_POST['Bruger'];
echo "Brugernavn: " . $Brugeren;

som noget af det første. Det du spørger om står på den første side, hvor brugeren vælges.
Avatar billede Slettet bruger
29. maj 2008 - 20:34 #19
Hmm, jeg troede der var en mulighed for at sende en link mere privat under din bruger, men det ku jeg ikke. Jeg kan ikke sende et link ud offentligt.
Avatar billede majbom Novice
29. maj 2008 - 20:37 #20
du kan sende det til splazz AT gmail DOT com
Avatar billede Slettet bruger
29. maj 2008 - 20:42 #21
sendt
Avatar billede majbom Novice
29. maj 2008 - 20:47 #22
det er jo mig der er en skovl :S

ret:

onchange="window.location.href='dinside.php?bruger=this.options[this.selectedIndex].value'"

til:

onchange="window.location.href='dinside.php?'+bruger=this.options[this.selectedIndex].value"
Avatar billede Slettet bruger
29. maj 2008 - 20:52 #23
Så er jeg tilbage hvor jeg startede :-)

Nu skifter den ikke til næste side efter valg af bruger.
Avatar billede majbom Novice
29. maj 2008 - 20:54 #24
nej det er mig igen :S

prøv at ret:

onchange="window.location.href='dinside.php?'+bruger=this.options[this.selectedIndex].value"

til:

onchange="window.location.href='dinside.php?bruger='+this.options[this.selectedIndex].value"
Avatar billede Slettet bruger
29. maj 2008 - 21:01 #25
Nej, der kommer stadig ingen data med over. Mystisk ?
Avatar billede majbom Novice
29. maj 2008 - 21:05 #26
ikke mystisk :)

i stedet for at bruge navnet på brugeren i databasen, vil det være bedre at bruge id'et. jeg går ud fra at du har en række i din tabel, med brugere, der er unik?

det er hurtigere at søge efter et tal, end en streng i en database
Avatar billede Slettet bruger
29. maj 2008 - 21:08 #27
Ja det er nok rigtigt. Indtil videre er brugere unik, men det er jo ikke sikkert det bliver ved. Det er jo en del der hedder det samme :-)

Men rettelsen skal stadig være ud fra brugernavn. Men de har jo et id som er auto, så det er vel bare at vælge id i stedet ? Men den burde jo overføre data.

Jeg så lige i vis kilde, at brugeren kommer med over i form linien, men ikke i php variablen.
Avatar billede majbom Novice
29. maj 2008 - 21:10 #28
ja okay, testede kun lige med "Ole Andersen" og der mellemrum i, hvilket bliver lavet om til "%20", så den søer efter Ole%20Andersen i din database og det kan den ike finde, men det virker heller ikke med tove :S
Avatar billede majbom Novice
29. maj 2008 - 21:12 #29
din sql ser ikke sådan her ud vel?

$OpdaterPCen = mysql_query(select * from DIN_TABEL where bruger='$_GET[bruger]') or die(mysql_error());
Avatar billede majbom Novice
29. maj 2008 - 21:12 #30
med lille b i bruger
Avatar billede Slettet bruger
29. maj 2008 - 21:14 #31
Jeg tror det er denne linie du mener:

$query_OpdaterPCen = "SELECT '%$Brugeren%' FROM `PC-Type`";
Avatar billede Slettet bruger
29. maj 2008 - 21:15 #32
Nå det er ikke den, men denne, tror jeg :-)

$OpdaterPCen = mysql_query($query_OpdaterPCen, $PC_Base) or die(mysql_error());
Avatar billede majbom Novice
29. maj 2008 - 21:17 #33
det var den jeg skrev tidligere der ikke gav mening :)

prøv med:

$OpdaterPCen = mysql_query(SELECT * FROM `PC-Type` WHERE Bruger='$_GET[bruger]') or die(mysql_error());
Avatar billede Slettet bruger
29. maj 2008 - 21:23 #34
Jamen det virker heller ikke :-) Den gav bare en fejl.

MEN

Hvis den laves om til dette:

$OpdaterPCen = mysql_query("SELECT * FROM `PC-Type` WHERE Bruger='$_GET[bruger]'") or die(mysql_error());

SÅ VIRKER DET.

TUSIND TAK.

Så håber jeg resten også virker :-)
Avatar billede Slettet bruger
29. maj 2008 - 21:26 #35
Hmm, den skriver ikke navnet i toppen, men når man har rettet noget og trykker opdater, så skriver den navnet i toppen ved Brugernavn. Nå, men det skal jo ikke vises der alligevel.
Avatar billede majbom Novice
29. maj 2008 - 21:28 #36
ja selvfølgelig skal der være gåseøjne rundt om din query... jeg går i seng :)

velbekomme, håber du får det hele til at spille.

og husk lige det med id i stedet for brugernavn

og så en anden ting, på siden med oversigt over pc'er, kunne du have en knap ved hver pc, der også linkede til rettelse af den enkelte pc... bare en ide :)
Avatar billede Slettet bruger
29. maj 2008 - 21:30 #37
Rigtig god idé.

Tak for hjælpen. Jeg skal også til snorkestrup lige om snart.

Meeen der er jo en dag i morgen, og så en hel weekend til at lege videre :-)

Godnat og tak.

Ole.
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