![]() |
Vet någon hur man kan koppla ihop två st formulär?
Ex. Om man vill lägga till en nyhet med bild så har man byggt upp nyheterna i en databas och att bilder ska laddas upp på servern. Att lägga till en nyhet använder ett formulär och att ladda upp en bild ett annat formulär. Nu vill man alltså koppla ihop de. |
Du vill alltså ladda upp en bild till en tabell och ett bildnamn till ett annat plus att den ska sparas på servern? Förstår inte riktigt ovan nämligen.
|
Du använder ett formulär istället.
|
Citat:
Men formulären ska ju göra olika saker. Den ena ska ju ladda upp bilden på servern och den andra ska skriva in nyheten i databasen. |
Citat:
|
Lägg in en dropdownbox i bildformuläret där du listar upp alla nyheter (med id't som value). Välj nyhet i dropdownboxen, välj bild[namn] och vipps, så har du ju det data du behöver i en och samma form post.
|
Jag skulle löst det med två submit-buttons i formuläret där den ena även tar med bilduppladdningen. Du namnger dessa knappar olika i "name"-taggen och kollar på så vis vilken användaren klickade på.
Klickar användaren på knappen som hör till bilduppladdningen kör du både bilduppladdningsscriptet och nyhetsscriptet. Den andra knappen enbart nyhetsscriptet. Om jag nu förstod det hela rätt. |
Citat:
Det du säger är ju att man ska FÖRST posta och spara nyheten och sen tilldela nyheten en bild. Det är TVÅ steg, inte ett. Jag förstår inte var problemet ligger att parsa en multipart-request och sortera ut data och eventuella filer. Det är inte svårare än så här: Formen ska vara multipart innehållande minst två fält: input type text med nyheten, och input type file med din eventuella fil. I din "uppladdare" kontrollerar du enkelt ifall filfältet är "null" dvs ingen fil har postats. Om den är null, lägger du in datat. Om den INTE är null, stoppar du in datat och tar vara på ett nyskapat id. Spara bilden. Om allt går bra så kan du även uppdatera datatabellen med att bekräfta att bilden är uppladdad. Hur du EXAKT bär dig åt, beror på språket. I php har man rätt bra verktyg för sånt. Själv använder jag java och har skrivit en utökning av HttpServletRequest som hanterar multipart-requests på samma sätt som PHP gör. /Z |
Citat:
Du vinner absolut inget med att ha två formulärer. |
Citat:
|
Citat:
Om man nu ska köra på din metod, måste man ändå ha två formulär. En där man först matar in nyheter, för att de ska sen bli tillgängliga i din droppdown lista, och sen den med droppdownlistan som man använder för att assignera nyheten en bild. Det jag säger är att man i enlighet med Milads önskemål, inte har några som helst anledningar att inte göra den saken i ett enda svep. |
Tack för svaren grabbar.....ska prova Zorans metod :-)
|
Citat:
Jag skrev däremot inte hur man benade ut datat på serversidan vilket är 99% av hela jobbet, därav kanske mitt svar inte bidrog så mycket till diskussionen. För detta ber jag om ursäkt! ;) |
Citat:
Det jag oponerar mot är att det visst finns en skillnad i förfarandet. (Antigen förstår jag inte riktigt vad du menar eller tvärtom). Om man kör på dropdown metoden, så måste man göra det i några steg. För att möjligheten att en nyhetsstory ska finnas med i droppdownen så måste den finnas med när sidan genereras. OK? Så, det innebär att man måste spara nyheten _först_. Sen ska man låta sidan med dropdownen att genereras. Då har man nyheten i sin droppdown. Då kan man ladda upp filen. Det innebär att du måste posta 2 gånger för att uppnå samma sak som med min metod. Min metod med textruta innebär att du matar in din story, väljer fil, och skickar alltihop i en och samma request (klick). |
Citat:
Att ha en dropdown med nyheter blir då som jag sa en editering av befintlig post, till skillnad mot ett nyupplägg av en post. Båda scenariona innehåller dock formdata beståendes av fil samt data. Om datat nu är en dropdown med exempelvis ett nyhetsid som value eller om det är själva nyhetstexten spelar mindre roll i en teknisk synvinkel. Skillnaden ligger snarare i den bakomliggande sql-syntaxen än i förfarandet att ta emot ett formulär istället för två, alltså ursprungsfrågan. :) |
Citat:
Alltså, editering av befintlig post förstår jag att man kan ha i en droppdown meny. So far so good. Men om "nyinsättning" av data ska skötas av en formulär som är multipart och har en textarea för nyhetstext och en input för en fil, så måste man ha en egen form för editering av formulärdata om man nu prompt vill ha den med en droppdown-lista. Jag har ett liknande upplägg dock inte med "nyheter". På en sida listas alla "objekt" (kan vara nyheter eller vad det nu kan vara för data). Längst ner på sidan finns en länk lägg till. Klickar man på den får man se en form där man matar in datat och eventuellt lägger till en fil. När det postas, läser i mitt fall en servlet av requesten för att se vad som finns med. Om både data och fil finns med, startas en transaction. Data läggs in och ID tas hand om. Filen sparas med id som filnamn. Datat uppdateras med binärvärde som talar om att bilden finns. Transaction commitas. Om bara data finns, skapas det en databaspost med binärvärde som säger att ingen fil lades till. När man går sedan till "huvudsidan" ser man alla objekt. Klickar man på ett av objekten får man se samma form som man ser när man skapar, bara den här gången med alla uppgifter ifyllda (förutom filen förstås). Om några filer finns uppladdade för just det objektet syns dem längst ner på sidan. Man kan då ändra uppgifter och spara, eller välja en ny fil och spara. Servleten ser att man editerar en befintlig post och plockar upp ID-t och uppdaterar posten i databasen, eller kopierar över den gamla filen. /Z |
Citat:
Nåja, skit i det. :) Milad; du kan även, som ett tillägg till Zorans sista post, välja mellan att döpa om filen exempelvis till det id som posten får eller ha kvar filnamnet och skriva in det i tabellen (dock med problemet att du kan få en krock om du laddar upp filer med samma namn som en befintlig fil). Du kan även göra en hybrid av de båda ovanstående; att lägga in filnamnet i databasen samt döpa om filen till exempelvis det id posten i databasen fick. På så sätt får du ett mer "användarvänligt" namn på filen (om du plockar fram namnet ur tabellen) samtidigt som du kan ha filer med, till synes, "samma" namn i samma folder. Nu vet jag inte vilken plattform du kör på Milad, men för .Net så är det väldigt enkelt att fixa uppladdning av filer samt data. Jag har en egen uploadkomponent för detta om du vill ha (om du kör .Net då förståss). :) |
Tack Robert för din engagemang :-)
Milad kör ren asp alltså inte .NET och sedan så kör Milad med access databas. |
Alla tider är GMT +2. Klockan är nu 08:41. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson