Avatar billede Bjarne Novice
12. juli 2007 - 20:17 Der er 11 kommentarer og
1 løsning

Manglende post-data

Goddag.

Jeg har lavet en form, som benytter post-metoden. Jeg skal bruge det i forbindelse med redigering af nogle poster jeg har i en database. Således ser koden ud:

<?php
if ($_POST['edit_x']) {
print_r($_POST);
} else {
?>
<form action="<?=$_SERVER['REQUEST_URI']?>" method="POST">
<input type="image" src="edit.png" name="edit" value=1>
</form>
<?php
}
?>

Jeg skal naturligvis vide hvilket id som er valgt, så derfor medsender jeg det som value. I firefox sendes det rigtig nok med: Array ( [edit_x] => 9 [edit_y] => 2 [edit] => 1 )
Men i Internet Explorer 7 med sendes kun Array ( [edit_x] => 9 [edit_y] => 2 ).

En som har en løsning på den problematik?
Avatar billede jakobdo Ekspert
12. juli 2007 - 21:27 #1
Prøv at smid: value="1" og ikke value=1
Gør det en forskel?
Avatar billede Bjarne Novice
12. juli 2007 - 22:34 #2
Nej desværre.
Avatar billede Bjarne Novice
12. juli 2007 - 22:36 #3
Altså det jeg gerne vil, er at bruge et billede som submit-button. Altså hvis der er en anden måde at lave det på, så hører jeg da også meget gerne den ;)
Avatar billede thesurfer Nybegynder
12. juli 2007 - 23:51 #4
Jeg går ud fra, at idnummeret skal være skjult (dvs, ikke vises i formen)..

Brug et skjult felt, til at indeholde id'en.

Eksempel:

<form action="<?=$_SERVER['REQUEST_URI']?>" method="POST">
<input type="hidden" name="idnummer" value="1">
<input type="image" src="edit.png" name="edit">
</form>

Så kan du aflæse værdien, ved at kigge på "idnummer".. f.eks. $_POST['idnummer'].

Hvis det ikke behøver at være skjult, kan du nøjes med type="text" i stedet for type="hidden"..
Avatar billede Bjarne Novice
13. juli 2007 - 00:24 #5
Ved ikke hvordan jeg skulle implementere den løsning. Der er jo flere id'er i listen, og jeg skal jo bruge det id, som brugeren har trykket på.
Avatar billede Bjarne Novice
13. juli 2007 - 00:49 #6
Joh.. du har ret. Så skal der bare være en <form> pr. id.
Avatar billede jakobdo Ekspert
13. juli 2007 - 08:03 #7
Det er sikkert ikke det bedste kode, men phpmyadmin benytter denne:

<button type="submit" name="edit" value="1" title="Edit">
<img src="edit.png" title="Edit" alt="Edit" />
</button>
Avatar billede olebole Juniormester
13. juli 2007 - 14:16 #8
<ole>

Spørg aldrig på knapper. Lav et specielt felt til den slags (og spørg rigtigt):

<form action="<?=$_SERVER['REQUEST_URI']?>" method="POST">
<input type="hidden" name="contxt" value="edit">
<input type="image" src="edit.png" name="edit">
</form>

- og spørg så på dét:

if (isset($_POST["contxt"]) && $_POST["contxt"]=="edit") {

/mvh
</bole>
Avatar billede olebole Juniormester
13. juli 2007 - 14:18 #9
- og så er dette noget snavs:
    <form action="<?=$_SERVER['REQUEST_URI']?>" method="POST">

- brug dette i stedet:
    <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">

- og nej, du skal ikke videresende en get-parameter som en get-parameter. Enten sender man GET - eller også sender man POST. Begge dele på én gang er noget sjusk  ;o)
Avatar billede jakobdo Ekspert
13. juli 2007 - 14:31 #10
Og nu siger olebole godt nok: <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">
Og det er så heller ikke godt nok længere.
Brug hellere: <form action="FILENS_NANV.PHP" method="POST">

Det er noget med sikkerhedsrisiko. :o(
Avatar billede Bjarne Novice
14. juli 2007 - 23:33 #11
thesurfer må gerne smide et svar. Og tak for vejledningen fra Jer andre ;)
Avatar billede thesurfer Nybegynder
15. juli 2007 - 03:08 #12
Det gør jeg 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