Avatar billede butcher Nybegynder
23. marts 2004 - 12:54 Der er 9 kommentarer og
1 løsning

Sender ikke form når billede som submitknap

Har en form hvor jeg har et billede som submit knap:

<input class="knap" type="image" src="images/submit.gif" name="upload" value="upload">

På samme side har jeg en

<?php
    if($_POST['upload']){
        mysql_query("INSERT INTO dvddb (navn, version, indhold, subs, tale, rating, genre, reg, lyd, imdb, udlaan, opdateret) values ('$_POST[navn]', '$_POST[version]', '$_POST[indhold]', '$_POST[subs]', '$_POST[tale]', '$_POST[rating]', '$_POST[genre]', '$_POST[reg]', '$_POST[lyd]', '$_POST[imdb]', '$_POST[udlaan]', '$time')");
        echo "OK";
        }
        ?>

Altså dem tjekker om man har udfyldt formen, og så indsætter den i databasen, dette virker dog ikke med billedet, men virker fint hvis jeg har en alm knap som <input type="submit" name="upload" value="Submit"> men det kan jeg ikke bruge af designmæssige oversager :)
Avatar billede and_ Nybegynder
23. marts 2004 - 13:18 #1
<input class="knap" type="image" src="images/submit.gif" name="upload" value="upload" onclick="document.FORMNAVN.submit();"> prøv den....
Avatar billede text Nybegynder
23. marts 2004 - 13:23 #2
Du mangler flere elementer.

Prøv at indsætte nedenstående (udskift action med det rigtige)

<form action="densammephpfil.php" method="post">

-og dit INPUT-felt skal have denne tilføjelse:
<input class="knap" type="image" src="images/submit.gif" name="upload" value="upload" onclick="this.submit()">


Vis gerne resten af din *.php -fil hvis du ikke kan bruge dette til noget.
Avatar billede muddi Praktikant
23. marts 2004 - 13:24 #3
Det er fordi der ikke er nogen POST-variabel der hedder upload. Hvis du ændrer method til GET vil du se at disse to variable sendes med

?upload.x=14&upload.y=7

Mit forslag er, at du i stedet for at kontrollere på 'upload' laver et felt af typen 'hidden'skjult felt, med således:

<input type="hidden" name="isUploaded" value="1">

I php gør du så således:

<?php
if($_POST['isUploaded']){
        mysql_query("INSERT INTO dvddb (navn, version, indhold, subs, tale, rating, genre, reg, lyd, imdb, udlaan, opdateret) values ('$_POST[navn]', '$_POST[version]', '$_POST[indhold]', '$_POST[subs]', '$_POST[tale]', '$_POST[rating]', '$_POST[genre]', '$_POST[reg]', '$_POST[lyd]', '$_POST[imdb]', '$_POST[udlaan]', '$time')");
        echo "OK";
}
        ?>
Avatar billede krydset Nybegynder
23. marts 2004 - 13:25 #4
<?php
    if($_POST['upload_x']){
        mysql_query("INSERT INTO dvddb (navn, version, indhold, subs, tale, rating, genre, reg, lyd, imdb, udlaan, opdateret) values ('$_POST[navn]', '$_POST[version]', '$_POST[indhold]', '$_POST[subs]', '$_POST[tale]', '$_POST[rating]', '$_POST[genre]', '$_POST[reg]', '$_POST[lyd]', '$_POST[imdb]', '$_POST[udlaan]', '$time')");
        echo "OK";
        }
        ?>
Avatar billede butcher Nybegynder
23. marts 2004 - 14:00 #5
hmmm kan ikke få nogle af dem til at virke :S

And, har prøvet det af og det samme med text og naturligvis har jeg en form action på min side, ser sådan her ud: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Muddi jeg prøvede med det skjulte felt, men ingen held her... ??
Avatar billede butcher Nybegynder
23. marts 2004 - 14:09 #6
Husk det virker fint med
<input type="submit" name="upload" value="Submit">
men ikke med
<input class="knap" type="image" src="images/submit.gif" name="upload" value="upload">

Det fatter jeg ikke helt hvorfor..
Avatar billede muddi Praktikant
23. marts 2004 - 14:11 #7
Det er fordi post-variablen 'upload' findes når du bruger submit. Det kan du se, hvis du sætter method til GET.
Når du bruger image, er du nødt til at bruge et hidden field, eller f.eks. tjekke et af de andre felter i stedet!
Avatar billede butcher Nybegynder
23. marts 2004 - 14:14 #8
Ha fik det til at virke, muddis metode var korrekt, ved ikke helt hvad jeg ramte forkert først, men nu funker det fint mange tak :)
Avatar billede muddi Praktikant
23. marts 2004 - 14:16 #9
Det var så lidt... jeg var lige ved at kode et eksempel til dig, så du kunne se at det virkede :o)
Velbekomme!
Avatar billede jakoba Nybegynder
24. marts 2004 - 01:58 #10
Når du submitter med <input type='image' bliver der IKKE send en værdi med knappens navn. der bliver sendt to værdier med navnene $knapnavn_x og $knapnavn_y

Det koomer sig af at at man i begundelse brugte den slags knapper som imagemaps. Når serveres på den måde fik en x,y værdi kunne den se hvor på billedet der var klikket og reagere på det.

så prøv at teste med:
  if( isset( $_POST['upload_x'] ) ) {
        // du er nødt til at bruge isset for værdien kan være 0

mvh JakobA
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