Avatar billede Authiel Nybegynder
13. oktober 2010 - 08:35 Der er 5 kommentarer og
1 løsning

$_POST værdier er forkerte.....

$catquery = mysql_query("SELECT * FROM category");
echo '<form action="" method="post">';
echo '<hr />';
echo '<table>';
while($catrow = mysql_fetch_assoc($catquery)){
    echo '<tr>';
    $id = $catrow['C_ID'];
    echo '<input name="cat_id" type="hidden" value="' . $id . '" />';
    echo '<td>Navn: </td><td><b>' . $catrow['C_NAME'] . '</b></td><td><input class="edit" name="edit" type="submit" value="" /></td><td><input class="delete" name="delete" type="submit" value=""/></td>';
    echo '</tr>';
    echo '<tr><td colspan="4"><hr /></td></tr>';
           
}
echo '</table>';
echo '</form>';
echo '<hr />';

if(isset($_POST['edit'])){
    echo '<form action="" method="post">';
    $id = $_POST['cat_id'];
    echo $id;
    echo '</form>';
}

Mit problem er at i når jeg udskriver $id fra det sidste if-statement så får jeg kun tallet 5. Hvor jeg burde få rækkens ID fra databasen. Nogle der kan se fejlen, for jeg kan ikke.!
13. oktober 2010 - 10:45 #1
Jeg vil gaette paa at du har fem raekker i din tabel.  Fordi du laver en enkelt formular for alle raekkerne submitter den en $id for den sidste raekke du puttede i formen.

Hvis du vil have vaerdierne for en enkelt raekke submittet saa skal du lave en form for hver raekke.  Proev saaledes:

$catquery = mysql_query("SELECT * FROM category");
echo '<hr />';
echo '<table>';
while($catrow = mysql_fetch_assoc($catquery)){
    echo '<form action="" method="post">';
    echo '<tr>';
    $id = $catrow['C_ID'];
    echo '<input name="cat_id" type="hidden" value="' . $id . '" />';
    echo '<td>Navn: </td><td><b>' . $catrow['C_NAME'] . '</b></td><td><input class="edit" name="edit" type="submit" value="" /></td><td><input class="delete" name="delete" type="submit" value=""/></td>';
    echo '</tr>';
    echo '<tr><td colspan="4"><hr /></td></tr>';
    </form>     
}
echo '</table>';
echo '</form>';
echo '<hr />';

if(isset($_POST['edit'])){
    $id = $_POST['cat_id'];
    echo $id;
  }
Avatar billede michael_stim Ekspert
13. oktober 2010 - 10:45 #2
HTML elementer kan ikke hedde det samme (cat_id), hvis altså det du mener med dit spørgsmål at du burde få flere resultater.

Du skal i så fald lave det til et array (cat_id[]) og f ex kalde det med en foreach.
13. oktober 2010 - 10:47 #3
Rettelse:  den sidste linie i while loekken skal vaere echo '</form>.
13. oktober 2010 - 10:48 #4
Det gaar godt i dag.  Sidste linie i while loekken skal vaere echo '</form>';
Avatar billede cronaldo Nybegynder
13. oktober 2010 - 11:40 #5
Der er flere løsninger alt efter om du vil:

- kunne tilføje hver række for sig
- om det er meningen at du skal trykke tilføj og så tilføjer den fx 5 rækker på ét tryk..
Avatar billede Authiel Nybegynder
13. oktober 2010 - 12:04 #6
fandt løsningen, det var som du sagde Christian_Belgien, smed bare <form> og </form> tagget ind i mit while loop og så virkede det hele som det skulle :D tak for hjælpen og du har fået dine point! :D
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