Forskellige switches bruger samme formular
Hej alleJeg har et spørgsmål, som jeg håber I kan hjælpe med.
Jeg er ved at opbygge et admin modul til et website, og har her fået strikket noget sammen på baggrund af tidligere kode og inspiration herfra.
Pt. har jeg via en switch fået en EDIT og en DELETE til at virke via samme formular, blot ved at skifte til en ny case i switchen.
Nu kunne jeg så godt tænke mig også at få tilføjet en INSERT via samme switch og samme formular.
Men det driller en del, men de to andre del elementer har jeg fået til at virke.
Så kunne godt tænke mig at finde lidt hjælp blandt jer til dette.
Min kode som den ser ud nu:
<?php
include("../connect.php");
include("login.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Admin</title>
<script type="text/javascript" src="widg/scripts/widgEditor.js"></script>
<link rel="stylesheet" type="text/css" href="widg/css/widgEditor.css" />
<link rel="stylesheet" type="text/css" href="css/loginstyle.css" />
</head>
<body>
<div id="actionbox" >
<a href="admin.php?logoff=true" target="_self">Logoff</a><br>
<a href="admin.php?id=0" target="_self">Change password</a><br>
<a href="../index.php" target="_blank">See page</a>
</div>
<?php include('nav-inc.php') ?>
<div id="wrapper">
<p class="attend">Du er her: <em>nyheder-ret.php</em> </p>
<h1>Admin - ret nyheder</h1>
<a href="nyheder-ret.php?go=insert&id=('$row['id']')">Opret ny nyhed</a>
<?php
switch($_GET['go'])
{
//DELETE
case 'delete':
$id = intval($_GET['id']);
@mysql_query("DELETE FROM news WHERE id='$id'");
if(mysql_affected_rows()==1)
{
echo '<p class="checked">Nyheden er nu slettet</p>';
}
else
{
echo '<p>Kunne ikke slette nyheden<br />Error: ' . mysql_error() . '</p>';
}
break;
//INSERT
case 'insert':
if(isset($_POST['teksten'])){
$overskrift = htmlspecialchars ($_POST['overskrift']);
$teksten = htmlspecialchars ($_POST['teksten']);
if(!get_magic_quotes_gpc()){
$overskrift = addslashes($overskrift);
$teksten = addslashes($teksten);
}
$query="INSERT INTO news (overskrift,teksten) VALUES ('$overskrift','$teksten')";
mysql_query($query);
echo "Nyheden er tilføjet";
}
break;
//EDIT
case 'edit':
if (isset($_POST['teksten']))
{
$overskrift = mysql_real_escape_string($_POST['overskrift']);
$teksten = mysql_real_escape_string($_POST['teksten']);
$id = intval($_POST['id']);
@mysql_query("UPDATE news SET overskrift='$overskrift', teksten='$teksten' WHERE id='$id'");
if(mysql_affected_rows()==1)
{
echo '<p class="checked">Nyhed opdateret</p>';
}
else
{
echo '<p>Kunne ikke opdatere nyheden: ' . mysql_error() . '</p>';
}
}
else
{
$id = intval($_GET['id']);
$link = @mysql_query("SELECT * FROM news WHERE id='$id'");
if(mysql_num_rows($link)!=1)
{
exit('<p>Fejl i hentning af nyhed: ' . mysql_error() . '</p>');
}
$link = mysql_fetch_array($link);
$overskrift = $link['overskrift'];
$teksten = $link['teksten'];
}
echo '<form action="' . $_SERVER['PHP_SELF'] . '?go=edit" method="post">';
?>
<input type="text" name="overskrift" class="felt" value="<?php echo $overskrift;?>">
<?php
echo '<textarea name="teksten" class="widgEditor" cols="70" rows="10">' . $teksten . '</textarea>';
echo '</label><br />';
echo '<input type="hidden" name="id" value="' . $id . '" />';
echo '<input type="submit" value="SUBMIT" /></p>';
echo '</form>';
break;
default:
break;
}
?>
I switchen med : case 'insert' vil jeg gerne have det sidste til at virke.
Tænker der måske skal justeres lidt og så skal der vel sagtens kobles en handling på, f.eks. et klik på et link eller noget ?
Håber I kan hjælpe ;-)
//Carsten