Ik heb een script geschreven dat hij een tabel krijgt met allemaal waarden uit de DB. en achter elke waarde komt de knop verwijderen te staan. Zodat als ik hem wil verwijderen hij dat dus ook doet. Echter merk ik dat hij geen waarde mee zend.

Dus hij weet niet welke waarde hij moet verwijderen. Dit is me script.

De link die op de hoofdpagina staat.

<td width="200"><?=$rij->titel; ?></td>
<td><?=$rij->code; ?></td>
<td><?=$rij->ects; ?></td>
<td><?=$rij->docent; ?></td>
<td><?=$rij->omschrijving; ?></td>
<td><?=$rij->materiaal; ?></td>
<td><a href="verwijderen.php?id=<?=$rij->titel;?>">verwijderen</a></td>


####verwijderen.php#######

<?php

require('db_connect.php'); // database connect






if (isset($_POST["bevestiging"])){

$sql = "DELETE FROM modulen WHERE id='".$_POST['titel']."'";

$result = pg_query($sql);

echo("De volgende opdracht is uitgevoerd: <b>$sql</b><BR>\n");

if ($result){

echo ("Module titel " .$_POST["titel"]. " is verwijderd<br>\n");
echo ("<a href=\"student_moduleoverzicht.php\"> Terug naar het overzicht</a>");

}
}else{

$sql = "SELECT * FROM modulen WHERE titel='".$_POST['titel']."'";

$result = pg_query($sql);

?>

<html>
<head>
<title> Verwijderen: weet u het zeker?</title>
</head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>

<?php

while($rij = pg_fetch_object($result)) {
?>
<?=$rij->titel; ?><br>
<?=$rij->code; ?><br>
<?=$rij->ects; ?><br>
<?=$rij->docent; ?><br>
<?=$rij->omschrijving; ?><br>
<?=$rij->materiaal; ?><br>
<?php
}
?>

<form method=”post”>
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="titel" value="<?php echo($_GET["titel"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug" onclick="javascript:history.back();">

</form>
<?php
}?>
</body>
</html>




ziet iemand het probleem.
Als je de te verwijderen titel uit de url haalt is het GET en geen POST.
Dat is zo. Heb je trouwens ook een ID veld? Gebruik dat dan! Das handiger ;)
SanThe schreef op 30.10.2005 10:56
Als je de te verwijderen titel uit de url haalt is het GET en geen POST.


welke bedoel je?



en nee heb geen id in de tabel staan.
Alle vars die je in een <a href...> zet moet je met GET ophalen.
ik krijg nu wel

De volgende opdracht is uitgevoerd: DELETE FROM modulen WHERE titel=''
Module titel is verwijderd

maar zoals je ziet geeft hij geen waarde mee. Dus wordt niks verwijderd. En ook de echo van wat er verwijderd moet worden zie je niet. Oftewel hij geeft de waarde titel niet mee
En als je dit ssort schrijfwijze eens normaal doet?
<?=$rij->titel;?>

Maar dan:
<?php echo $rij->titel; ?>
dat mag helaas niet baten. zelfde output als ik net al gaf
Kijk eens in de broncode van je pagina of het daar wel goed staat. Als er spaties in de titel zitten gaat het waarschijnlijk ook fout. Waarom heb je geen id in de database? Dat is veel handiger.
En dit?

<?php

require('db_connect.php'); // database connect






if (isset($_GET["bevestiging"])){

$sql = "DELETE FROM modulen WHERE id='".$_GET['titel']."'";

$result = pg_query($sql);

echo("De volgende opdracht is uitgevoerd: <b>$sql</b><BR>\n");

if ($result){

echo ("Module titel " .$_GET["titel"]. " is verwijderd<br>\n");
echo ("<a href=\"student_moduleoverzicht.php\"> Terug naar het overzicht</a>");

}
}else{

$sql = "SELECT * FROM modulen WHERE titel='".$_GET['titel']."'";

$result = pg_query($sql);

?>

<html>
<head>
<title> Verwijderen: weet u het zeker?</title>
</head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>

<?php

while($rij = pg_fetch_object($result)) {
?>
<?=$rij->titel; ?><br>
<?=$rij->code; ?><br>
<?=$rij->ects; ?><br>
<?=$rij->docent; ?><br>
<?=$rij->omschrijving; ?><br>
<?=$rij->materiaal; ?><br>
<?php
}
?>

<form method=”post”>
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="titel" value="<?php echo($_GET["titel"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug" onclick="javascript:history.back();">

</form>
<?php
}?>
</body>
</html>
Ook hiermee kreeg ik de zelfde melding:

De volgende opdracht is uitgevoerd: DELETE FROM modulen WHERE titel=''
Module titel is verwijderd

dus ook hier neemt hij de titel niet goed mee

Reageren