Avatar billede Slettet bruger
19. februar 2004 - 07:16 Der er 12 kommentarer og
1 løsning

Ved klik på navn fra tabel - gem i en anden tabel

Hej.

Jeg har lavet en database med varer i som jeg kan købe i en forretning, med priser. De er så opdelt i grupper, som jeg vil bruge til at lave en liste når jeg skal handle.

Jeg har lavet en liste hvor varerne kommer ud under hinanden. I bunden har jeg så levet en form hvor jeg kan klippe og klistre varenavn, gruppe og pris og så trykke på en submitknap og de skrives ind i en anden tabel i databasen. Derefter kan jeg så lave et udtræk sorteret efter gruppe, som kan skrives ud, og jeg har en indkøbsliste jeg kan tage med ud og handle :-)

MEN, nu synes jeg det ville være meget smartere hvis jeg kunne klikke på varenavnet og så gemte den selv i den tabel, listen gemmes i. Hvordan dælen griber man det an ?

Den skal jo blive på samme side. Hvis jeg bare skulle lave en link til en anden side, tror jeg at jeg kunne finde ud af det, det har jeg prøvet engang, men det skal den ikke her. Man skal simpelthen bare kunne tilføje de tre nævnte når man klikker på et varenavn som står i en liste.

Hvordan gør man det i PHP ?

klik på varenavn = insert record i tabellen ( tabellen hedder liste ).
Avatar billede Slettet bruger
19. februar 2004 - 07:40 #1
Det nemmeste må vel være, at rette i den løkke, du allerede har, der udskriver listen fra din varetabel. Jeg vil foreslå følgende:

Lav en lille formular ved hver vare med dette indhold:

<form action='' method='post'>
  <input type='hidden' name='vareid' value='$id'>
  <input type='text' name='antal' value='1'>
  <input type='submit' name='tilfoej' value='Tilføj'>
</form>

Så skal du bare et sted på siden også have denne kode:

if (isset($_POST['vareid']) && isset($_POST['antal'])){
  mysql_query("INSERT INTO liste SET vareid='{$_POST['vareid']}', antal='{$_POST['antal']}'");
}

Du kan med fordel også trække det allerede eksisterende antal fra liste i din eksisterende query, så man kan se, hvilke varer, der allerede er skrevet op.

Det hele skal naturligvis lige tilrettes til de variabel- og feltnavne, du ønsker at benytte.
Avatar billede Slettet bruger
19. februar 2004 - 08:13 #2
TAk for eksemplet. Nu har jeg fået den til at skrive varenavn i liste. Men den skal også gemme gruppe og pris. Hvordan får jeg dem med ? Ellers ser det ud til at være det helt rigtige :-)
Avatar billede Slettet bruger
19. februar 2004 - 08:14 #3
if (isset($_POST['id']) && isset($_POST['VareNavn'])){
  mysql_query("INSERT INTO liste SET VareNavn='{$_POST['VareNavn']}', Gruppe='{$_POST['Gruppe']}', Pris='{$_POST['Pris']}'");
}

  <tr>
      <form action='' method='post'>
    <td align="left">  <input type='hidden' name='id' value='$id'>
    <input type='text' name='VareNavn' value='<?php echo $row_rsVisVare['VareNavn']; ?>'>
  <input type='submit' name='tilfoej' value='Tilføj'>
</form>
</td>

Er hvad jeg er kommet frem til indtil nu.
Avatar billede Slettet bruger
19. februar 2004 - 08:27 #4
Det ser ud til at jeg er ved at skyde mig ind på det nu. Tusind tak for hjælpen. Nu er det vist kun lidt tilretning.
Avatar billede Slettet bruger
19. februar 2004 - 08:28 #5
Jeg retter lige lidt, da nogle af dine tags er forkert nestet:

<tr>
  <form action='' method='post'>
    <td align="left">
      <input type='hidden' name='id' value='$id'>
      <input type='hidden' name='VareNavn' value='<?php echo $row_rsVisVare['VareNavn'];?>'>
      <input type='hidden' name='VareNavn' value='<?php echo $row_rsVisVare['VareNavn'];?>'>
      <input type='hidden' name='VareNavn' value='<?php echo $row_rsVisVare['VareNavn'];?>'>
      <input type='submit' name='tilfoej' value='Tilføj'>
    </td>
  </form>

Hvis du ikke bruger id-feltet, kan du bare slette linien i formen.
Avatar billede Slettet bruger
19. februar 2004 - 08:28 #6
Og id skal så heller ikke checkes i den if()-sætning.
Avatar billede Slettet bruger
19. februar 2004 - 08:30 #7
Og så retter jeg lige mig selv ;-)

<tr>
  <form action='' method='post'>
    <td align="left">
      <input type='hidden' name='id' value='$id'>
      <input type='hidden' name='VareNavn' value='<?php echo $row_rsVisVare['VareNavn'];?>'>
      <input type='hidden' name='Gruppe' value='<?php echo $row_rsVisVare['Gruppe'];?>'>
      <input type='hidden' name='Pris' value='<?php echo $row_rsVisVare['Pris'];?>'>
      <input type='submit' name='tilfoej' value='Tilføj'>
    </td>
  </form>
Avatar billede Slettet bruger
19. februar 2004 - 08:33 #8
Aha, ja det ser jo unægtelig lidt mere overskueligt ud :-)
TAK - det er godt med lidt indput. Man kører let fast i det her synes jeg, og når man så får løsningen, virker det jo helt simpelt ;-)
Avatar billede Slettet bruger
19. februar 2004 - 08:37 #9
type='hidden'  er vist ikke så god :-) Så viser den ikke indholdet på siden.
Avatar billede Slettet bruger
19. februar 2004 - 08:42 #10
Da det jo ikke er meningen, at felterne skal kunne redigeres, kan de lige så godt være hidden, og så kan du skrive det som normal tekst i en (eller flere andre celler i din tabel.
Avatar billede Slettet bruger
19. februar 2004 - 08:50 #11
Alle data hentes i en tabel i databasen og skal derfor kunne ses. Og der vælger man så det der skal skrives i tabellen liste. Så nytter det jo ikke at man ikke kan se dem :-) Jeg ahr fået den til at gemme, men det se ikke så pænt ud, men det er jo noget med at rette til, så det kommer nok. Nu har jeg idén til det selvom det var en link på varenavn jeg helst ville have istedet for en tilføj knap, men det virker lige så godt.
Avatar billede Slettet bruger
19. februar 2004 - 08:52 #12
Hvis de ikke skal kunne rettes i, kan man vel sætte dem til readonly.
Avatar billede Slettet bruger
19. februar 2004 - 09:26 #13
Fnis - Nu har jeg accepteret dit svar flere gange. Men jeg havde lige glemt at klikke på dit navn først :-) Men NU er den der kan jeg se. TAK.
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