Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:08 Der er 19 kommentarer og
1 løsning

Rediger script?

Hej Eksperter!

Jeg står og vil gerne lave et rediger script til mit nyhedssystem og ville høre om i kunne hjælpe mig?

Min kode ser sådan ud:
<?

// Includes
require ('functions.php');

// Functions
db_connect();

// Nyhedsfunktioner
news_edit();
news_del();

?>

<html>

<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

<table width="100%">
<tr class="head">
    <td>Rediger nyhed</td>
</tr>
</table>

<br><br><br><br>
<table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td>
                <form name="form1" method="post" action="<?=$_SERVER['PHP_SELF'];?>">
                    <p> <span class="alm">Skribent:</span><br>
                            <input type="text" name="skribent"><? $get['skribent'] ?></p>
                        <p><span class="alm">Emne:</span><br>

                            <input type="text" name="emne"><? $get['emne'] ?></p>
                        <p><span class="alm">Tekst: </span><br>
                        <textarea name="tekst"><? $get['tekst'] ?></textarea>
                        <br>
                        <input name="Opdater" type="submit" class="alm" value="Opdater"></p>
                        <input name="Slet" type="submit" class="alm" value="Slet"></p>
                </form></td>
                </tr>

          </table>

</body>
</html>

##############################################

Min news_edit() ser sådan ud:
function news_edit() {
$sql = "UPDATE news set skribent='$_POST', emne='$_POST', tekst='$_POST', dato='$_POST' where id = '".$_POST['edit']."'";
mysql_query($sql) or die(mysql_error())
;}


Men jeg kan klikke lige så meget på Rediger knappen jeg har lyst til, der sker nemlig ingenting andet end et refresh.

Hvordan løser jeg problemet?
Avatar billede busschou Praktikant
24. august 2005 - 09:19 #1
mangler du ikke navne på alle dine $_POST ?
altså skribent='$_POST[skribent]' osv
Avatar billede busschou Praktikant
24. august 2005 - 09:21 #2
hvor får du id fra? altså $_POST['edit'] ? der er da ikke noget felt i formen som hedder edit ?
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:22 #3
jo.. men hvor? :)

Jeg er temmelig ny til php :S
Avatar billede busschou Praktikant
24. august 2005 - 09:22 #4
men i øvrigt ser det også ud til at du kalder news_edit() uanset om der klikkes på opdater eller ej, og måske tilsvarende news_del() ? du bør tjekke på om formen er submittet og om det er opdater knappen der har submittet den
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:24 #5
Jeg vil jo trykke på en knap i index.php som sender mig videre til news_edit.php, min fejl at jeg ikke har smidt det ind noget før, det beklager jeg dybt =/

Min index.php ser sådan ud:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>


<?

// Inkluderede filer
require ('functions.php');

// Funktioner
db_connect();
###news_edit();
news_del();

##########################################
?>

<img src=http://www.proit.dk/img/pro_it_logo.gif style="position: absolute; bottom:0px; right:0px;" >

<table width="100%">
<tr class="head">
    <td>Velkommen til mit Nyhedsmodul</td>
</tr>
</table>
<br><br>
<table align='center'>

<?
// style='border: black 1px solid' <- til tabellen ovenover
// Udskriv resultater fra MySQL i en tabel
// MySQL forespørgsel, valg af database
$sql = "SELECT * FROM news ORDER BY dato DESC";
$query = mysql_query($sql) or die(mysql_error());
while ($get = mysql_fetch_array($query)) {

echo "
<tr>
    <td class='alm' align='left' width='250'><br><br><b>".$get['emne']."</b> af ".$get['skribent']."</td>
    <td class='alm' align='right' width='100'><br><br>".date("H:i d/m/y",$get['dato'])."</td>
    <td class='alm' align='right' width='60'><br><br>(<a href=\"?edit=".$get['id']."\">Rediger</a>/<a href=\"?del=".$get['id']."\">Slet </a>- ID: ".$get['id'].")</td>

</tr>
    "
;

echo "
<tr>
    <td class='alm' align='left' width='600' colspan='3'><br>".$get['tekst']."<hr></td>
</tr>
"
;}
?>
</table>
</html>
Avatar billede busschou Praktikant
24. august 2005 - 09:24 #6
i din sql sætning selvfølgelig :o)
jeg er heller ikke så stærk i php men noget ala
----
function news_edit() {
$sql = "UPDATE news set skribent='$_POST[skribent]', emne='$_POST[emne]', tekst='$_POST[tekst]', dato='$_POST[dato]' where id = '".$_POST['edit']."'";
mysql_query($sql) or die(mysql_error())
;}
----
Det kræver dog at du i din form laver et felt med navnet "edit" og et med navnet "dato", du kan lave den som <input type="hidden"> så ses de jo ikke ;o)
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:25 #7
hvordan gør jeg det? :)
Avatar billede busschou Praktikant
24. august 2005 - 09:26 #8
det er også fint nok, så får du et link som du klikker på som sender dig til din form.
Men når du submitter din form sender du jo ikke "edit" eller "del" videre!
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:27 #9
hvordan sender jeg den videre sÅ?
Avatar billede busschou Praktikant
24. august 2005 - 09:30 #10
du laver bare felterne i din form ala
<input type="hidden" name="edit" value="<?=$_GET['edit']?>">
derved hiver du id´et ned fra adresselinjen i formen, når formen submittes sendes det så videre igen med POST :o), og så henter du det i din sql med $_POST['edit']
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:33 #11
nu ser min news_edit.php sådan ud:

<?

// Includes
require ('functions.php');

// Functions
db_connect();

// Nyhedsfunktioner
news_edit();
news_del();

?>

<html>

<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<img src=http://www.proit.dk/img/pro_it_logo.gif style="position: absolute; bottom:0px; right:0px;" >
<table width="100%">
<tr class="head">
    <td>Rediger nyhed</td>
</tr>
</table>

<br><br><br><br>
<table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td>
                <form name="edit_news" method="get" action="<edit_news.php>">
                    <p> <span class="alm">Skribent:</span><br>
    <input type="hidden" name="edit" value="<?=$_GET['edit']?>
                            <input type="text" name="skribent"><? $get['skribent'] ?></p>
                        <p><span class="alm">Emne:</span><br>

                            <input type="text" name="emne"><? $get['emne'] ?></p>
                        <p><span class="alm">Tekst: </span><br>
                        <textarea name="tekst"><? $get['tekst'] ?></textarea>
                        <br>
                        <input name="Opdater" type="submit" class="alm" value="Opdater"></p>
                        <input name="Slet" type="submit" class="alm" value="Slet"></p>
                </form>
                </td>
                </tr>

          </table>

</body>
</html>

##########################################
Er det korrekt eller er det helt hen i vejret`?
Og hvordan indsætter jeg det med post?
Avatar billede busschou Praktikant
24. august 2005 - 09:34 #12
09:24:33 skrev jeg hvordan din sql sætning bør se ud, det er muligt jeg har taget fejl af brugen af '
Men det er sådan de hentes ved $_POST nemlig at man i [] angiver navnet på feltet
Avatar billede ai_rayzor Nybegynder
24. august 2005 - 09:37 #13
Jeg kan ikke få det hen =/
Avatar billede busschou Praktikant
24. august 2005 - 09:37 #14
jeg kan godt se der er en del småting, jeg troede bare det kun var det med POST :o)
Men du skal også lave et dato felt i din form som indeholder datoen
Og så bør du inden kaldet til update funktionen teste på om $_POST['Opdater'] er tom, for hvis den er det så er der jo enten ikke klikket, eller også er der klikket på "slet" og I de to tilfælde ønsker du jo ikke udføre en opdatering, værre er måske hvis du tilsvarende altid udfører en delete. Der skal du også tjekke om der er klikket på Slet først :o)

Men desværre skal jeg til og ud af døren, men der kommer nok hurtig en anden herind :o)
Avatar billede ai_rayzor Nybegynder
29. august 2005 - 08:33 #15
Andre der har et bud? :)
Avatar billede ai_rayzor Nybegynder
29. august 2005 - 10:11 #16
*bump*
Avatar billede ai_rayzor Nybegynder
31. august 2005 - 12:53 #17
*bump*
Avatar billede ai_rayzor Nybegynder
02. september 2005 - 13:02 #18
busschou, smid et svar.
vi lukker.
Avatar billede busschou Praktikant
02. september 2005 - 14:12 #19
oki prøv opret spørgsmålet igen, så kan det være der er nogen som ser det :o)
Håber du ender med at få det løst i al fald
Avatar billede ai_rayzor Nybegynder
02. september 2005 - 14:37 #20
det håber jeg da der er :) - jeg har allerede oprettet det igen som du kan se :)
du er da også velkommen til at deltage igen.
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