Tags
Forum
Artikler
Brugere
Stil spørgsmål
1
online
Login
Husk mig
Ændre prioritering
Tags:
php
Bruger #2052
@ 22.09.03 15:40
4
Formålet er at kunne ændre værdien af et felt (prioritiy) i min db, som bruges til at sortere de artikler som det er knyttet til efter.
Problemet er at jeg lister alle artikler op i en form med hver deres tilhørende textfield, og når jeg trykker submit, kan jeg ikke få den til at sende de rigtige oplsyninger.
Jeg ved godt at problemet er at jeg skal ha sendt det unikke id med over, med hvordan får jeg lige givet det et navn så jeg kan få det med over.
Kode til formen.
$res = mysql_query ("SELECT * FROM $dbTable ORDER BY priority ASC") or die("Kunne ikke opdatere databasen");
echo("
<form name='editform' action='$_SERVER[PHP_SELF]' method='POST'>
<table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td colspan='2' width='100%'><img src='../images/prik_hvid.gif' width='8' height='8'><span class='header'>Rediger Rækkefølge</span> <img src='../images/prik_sort.gif' width='100%' height='1'></td>
</tr>
<tr bgcolor='EBE0CC'>
<td valign='top'>
<table width='100%' border='0' cellpadding='0' cellspacing='5'>");
while ($row = mysql_fetch_array($res)) {
echo("
<input type='hidden' name='id' value='$row[id]'>
<tr>
<td width='100%'><img src='../images/pil.gif' width='8' height='8'> ".$row
."</td>
<td width='0%'><input type='textfield' maxlength='2' name='priority' class='inputfield' style='width:20px' value='$row[priority]'></td>
</tr>
");
}
echo("
</table>
</td>
</tr>
</table>
<table width='100%' border='0' cellspacing='5' cellpadding='0'>
<tr>
<td><input type='submit' value='Gem' name='update_priority' class='button'><IMG height=10 src='../images/prik_hvid.gif' width=10>
<input type='submit' value='Annuller' name='annuller' class='buttonLilleText'></td>
</tr>
</table>
</form>");
Kode til indsæt i db.
if ($update_priority) {
$res = mysql_query ("UPDATE $dbTable SET priority='$priority' WHERE id='$id'");
}
Problemet ligger omkring id, da jeg nu kun sender et id over, da de andre jo bliver overskrevet fordi de efterfølgende har det samme navn. Det samme gælder for textfeltet prioritering, men hvis jeg begynder at give dem unikke navne i formen, hvordan skal jeg så fange dem i min if sætning.
Er der evt en lættere måde at lave det på.
5
svar postet i denne tråd vises herunder
2
indlæg har modtaget i alt
4
karma
Sorter efter stemmer
Sorter efter dato
3
Bruger #3143
@ 23.09.03 20:22
2
1.965
slet det skjulte felt med id
lav navnet i dit tekstfelt om til name=\\"priority[$row[id]]\\" (dvs du laver en array med id'erne som navne og prioriteterne som værdier)
indsæt i databasen med noget i retningen af:
foreach($_POST[priority] as $id=>$priority'){
mysql_query("UPDATE $dbTable SET priority='$priority' WHERE id='$id'");
}
[Redigeret d. 23/09-03 20:26:08 af Jesper Kristensen]
1
Bruger #846
@ 22.09.03 15:47
435
Lav en form for hvert output, og du har løst problemet.
--
Ronni Egeriis - squirrel development:
http://sqdev.dk/
0
Bruger #2052
@ 22.09.03 17:21
4
Ja, det er jeg godt klar over, men så skal der også være en submit for hver form, og dermed vil det tage pænt lang tid at ændre prioriteringen af ex 10 artikler. Hvis man derimod kunne ændre alle to prioriteter samtidig, og derefter kun trykke submit en gang, hvilket er det jeg vil ha.
0
Bruger #2052
@ 24.09.03 11:08
4
Det lyder som en rigtig go ide. Jeg sad også selv og tænkte lidt over at der på en eller anden måde skulle sendes to værdiger med over, men havde helt smidt array ud... Vil prøve om det virker iaften.
0
Bruger #2052
@ 25.09.03 14:59
4
Thx for det... Nu virker det...
Der var lige kommet en ' for meget med efter $priority i foreach, men ellers virkede det bare 110%
Karma barometer (30 dage)
Modtaget
Givet
X
Favorit hos
Forum tråde
Artikler
Tilføj til dine favorit tags
Fjern fra dine favorit tags