13. februar 2006 - 20:42
Der er
12 kommentarer og 1 løsning
Opdaterer ved at slette værdierne i annoncen
Jeg har nedenstående hvor man skal kunne rette i en annonce. Mit problem er at den i stedet for at huske rettelserne bare sletter alt.. nogen som kan hjælpe? <?php require_once("../members/common.php"); $Id = $_GET[id]; $hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error()); $raekke = mysql_fetch_assoc($hent); echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> "; echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>"; echo "</span></td></tr></table></div>"; echo " <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"> <tr> <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td> </tr></table> <table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\"> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td> </tr> </table> <tr> <td colspan=\"2\">"; require_once("../members/common.php"); $imgID = mysql_real_escape_string($_GET['id']); $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error()); while($imgrow = mysql_fetch_assoc($imgquery)) { echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>"; } echo " </td> </tr> "; ?> <body> <form action="redigerDineSalgsannoncer.php" method="post" name="FormName"> <?php require_once("../members/common.php"); $Id = $_GET[id]; $produkt==$produkt; $supplerendeTekst==$supplerendeTekst; $pris==$pris; $tlf1==$tlf1; $tlf2==$tlf2; $email==$email; mysql_query("update salgAfProdukt set produkt = '$produkt', supplerendeTekst = '$supplerendeTekst', pris = '$pris', tlf1 = '$tlf1', tlf2 = '$tlf2', email = '$email' WHERE Id = '$Id'"); echo 'Annoncen er opdateret!'; ?> <input type="submit" name="submitButtonName" border="0"> </form> <p></p> </body>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
13. februar 2006 - 21:18
#1
Jeg kan ikke lige se i dit script, hvordan du adskiller afsendelse af form-felter til browser, og modtagelse af data fra form-felter. Det kan eventuelt lægges i 2 forskellige PHP filer.
Husk på, at et PHP script sender en side med indtastningsfelter til browseren, og derefter afslutter scriptet.
Når der trykkes submit i browseren kaldes PHP-scriptet (forfra hvis der kun er en fil) og man skal starte med at undersøge om alle felterne var udfyldt og valide.
Det er der eksempler på her
http://www.eksperten.dk/spm/405133 og her
http://www.eksperten.dk/spm/406079 Prøv at studere disse løsninger.
13. februar 2006 - 21:37
#2
Nu har jeg prøvet at forbedre koden, men det virker stadig ikke.. kan du se hvad som er galt nu? <form action="<?=$PHP_SELF;?>" method="POST" name="form"> <?php require_once("../members/common.php"); $Id = $_GET[id]; // update database if the form has already been filled in: if(isset($_REQUEST[Id])){ $SQL = "UPDATE salgAfProdukt SET produkt = '$_REQUEST[produkt]' WHERE id = $_REQUEST[Id]"; mysql_query($SQL); } $hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error()); $raekke = mysql_fetch_assoc($hent); echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> "; echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>"; echo "</span></td></tr></table></div>"; echo " <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"> <tr> <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td> </tr></table> <table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\"> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td> </tr> </table> <tr> <td colspan=\"2\">"; require_once("../members/common.php"); $imgID = mysql_real_escape_string($_GET['id']); $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error()); while($imgrow = mysql_fetch_assoc($imgquery)) { echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>"; } echo " </td> </tr> "; ?> <input type="submit" value="opdatér" name="update"> </form>
13. februar 2006 - 21:49
#3
To ting der lige undrer mig: - Formen har method=POST men du bruger $_GET et par steder - Jeg kan ikke få øje på feltet 'id' blandt form-felterne
13. februar 2006 - 21:55
#4
nu har jeg ændret post til get.. men forstår ikke hvad du mener med id?
13. februar 2006 - 22:02
#5
Når du laver $_GET['id'] og $_REQUEST[id] skal feltet id være blandt indtastningsfelterne? eller hvor kommer værdien fra?
13. februar 2006 - 22:08
#6
Prøv at indsætte nogen debug-linier, hvor du laver echo af variablene undervejs, så du ved hvornår de er udfyldt. I starten skal du vel teste om feltet produkt er udfyldt, inden du skriver det til databasen.
13. februar 2006 - 22:11
#7
Nu bliver jeg sq forvirret... kan du ikke venligst forklare lidt nærmere:) gerne lidt ilustrativt. <form action="<?=$PHP_SELF;?>" method="GET" name="form"> <?php require_once("../members/common.php"); $Id = $_GET[id]; // update database if the form has already been filled in: if(isset($_REQUEST[Id])){ $SQL = "UPDATE salgAfProdukt SET produkt = '$_REQUEST[produkt]' WHERE id = $_REQUEST[Id]"; mysql_query($SQL); } $hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error()); $raekke = mysql_fetch_assoc($hent); echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> "; echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>"; echo "</span></td></tr></table></div>"; echo " <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"> <tr> <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td> </tr></table> <table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\"> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td> </tr> </table> <tr> <td colspan=\"2\">"; require_once("../members/common.php"); $imgID = mysql_real_escape_string($_GET['id']); $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error()); while($imgrow = mysql_fetch_assoc($imgquery)) { echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>"; } echo " </td> </tr> "; ?> <input type="submit" value="opdatér" name="update"> </form>
13. februar 2006 - 22:19
#8
HMMM.. det er sku da mystisk... hvis den kan vise annoncen fint i nogle redigerbare felter (det kan den jo), så burde det sq da også forholdsvis simpelt kunne lade sig gøre at hente de nye værdier ind fra felterne og gemme dem igen.. de felter som er tomme skal jo bare forblive tomme, og de felter som er ændrede skal jo bare indsættes med det ændrede :(
13. februar 2006 - 22:39
#9
Tilføj en linie mere i din formular: <input type='text' name='id' value='$raekke[id]'> Jeg går ud fra at du har et nøglefelt i databasen ved navn id. Feltet id bruges i starten af dit script, og dermed skal det også komme ind på samme måde som alle andre felter. Det kommer ind ved at være et felt i form'en. Og så lav lige if(isset($_REQUEST[Id])){ om til if(isset($_REQUEST[produkt])){ inden du skriver feltet produkt til databasen. Ellers vil feltet produkt blive blanket i databasen i andre situationer hvor kun id er udfyldt.
13. februar 2006 - 22:49
#10
OK.. COOL. Nu ser det ud til at virke. Ser det rigtigt ud? og hvordan får jeg fyldt flere felter på <form action="<?=$PHP_SELF;?>" method="GET" name="form"> <?php require_once("../members/common.php"); $Id = $_GET[id]; // update database if the form has already been filled in: if(isset($_REQUEST[produkt])){ $SQL = "UPDATE salgAfProdukt SET produkt = '$produkt' WHERE id = '$Id'"; mysql_query($SQL); } $hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error()); $raekke = mysql_fetch_assoc($hent); echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> "; echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>"; echo "</span></td></tr></table></div>"; echo " <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"> <tr> <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td> </tr></table> <table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\"> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Id:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='id' value='$raekke[Id]'><br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td> </tr> </table> <tr> <td colspan=\"2\">"; require_once("../members/common.php"); $imgID = mysql_real_escape_string($_GET['id']); $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error()); while($imgrow = mysql_fetch_assoc($imgquery)) { echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>"; } echo " </td> </tr> "; ?> <input type="submit" value="opdatér" name="update"> </form>
13. februar 2006 - 23:03
#11
Jeg har fundet ud af at sætte flere ind.. men ser koden rigtig ud? Og smider du ikke lige et svar... TAKKER mange gange :) <form action="<?=$PHP_SELF;?>" method="GET" name="form"> <?php require_once("../members/common.php"); $Id = $_GET[id]; // update database if the form has already been filled in: if(isset($_REQUEST[produkt],$_REQUEST[supplerendeTekst],$_REQUEST[pris],$_REQUEST[tlf1],$_REQUEST[tlf2],$_REQUEST[email])){ $SQL = "UPDATE salgAfProdukt SET produkt = '$produkt', supplerendeTekst = '$supplerendeTekst', pris = '$pris', tlf1 = '$tlf1', tlf2 = '$tlf2', email = '$email' WHERE id = '$Id'"; mysql_query($SQL); } $hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error()); $raekke = mysql_fetch_assoc($hent); echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> "; echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>"; echo "</span></td></tr></table></div>"; echo " <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"> <tr> <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td> </tr></table> <table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\"> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Id:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='id' value='$raekke[Id]'><br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td> </tr> <tr> <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td> <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td> </tr> </table> <tr> <td colspan=\"2\">"; require_once("../members/common.php"); $imgID = mysql_real_escape_string($_GET['id']); $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error()); while($imgrow = mysql_fetch_assoc($imgquery)) { echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>"; } echo " </td> </tr> "; ?> <input type="submit" value="opdatér" name="update"> </form>
13. februar 2006 - 23:26
#12
Hvor kommer feltet id fra? Hvis det ikke skal kunne ændres på denne side, kan du evt. lave det 'hidden' så det ikke ses, men stadig føres frem og tilbage.
13. februar 2006 - 23:59
#13
OK.. takker
Vi tilbyder markedets bedste kurser inden for webudvikling