Gå til innhold

[Løst]Checkboxer og overføring av formdata


Anbefalte innlegg

Hei

Har fått utrolig bra hjelp her tidligere, spør derfor om et par ting til.

Skal lage en side som skal slette visse bestemte rader i en database, dette ved først å hente dem ut, så skal de merkes vha en checkbox, så slettes ved et trykk på knappen.

Dette er koden jeg har for å hente ut radene fra db (Dette virker forøvrig):

<?php 
while ($row = mysql_fetch_array($sql, MYSQL_BOTH)) {

// gir navn til variablene
	$medlemsnr = $row['medlemsnr'];
$fornavn = $row['fornavn'];
  	$etternavn = $row['etternavn'];
  // $melding = $row['melding'];
//	$epost = $row['epost'];

//build formatted results
//echo "Medlemsnummer = $medlemsnr <br> Navn = $fornavn &nbsp $etternavn, <br>"; 
?>
<form method="post" action="delete.php">
<br><b>Medlemsnr:</b><br>
<i><?php echo "$medlemsnr"; ?></i><br>
<b>Navn:</b><br>
<i><?php print( "$fornavn"); ?></i> 
<i><?php  print ( "$etternavn"); ?>    
<input type="checkbox" name="delete" id="checkbox[]" value="<?php echo "$medlemsnr";?>">  <?php } ?> <br>----------------------------------------- </i><br>
<input type="submit" value="Slett" >
</form>

Her er delete.php:

<?php 
if (is_array("$checkbox"))
foreach ("$checkbox" as "$s") {

echo "$s";
  // $sql_query = mysql_query("DELETE FROM xxx WHERE medlemsnr is ("$s")");
}
?>

Mine spm er så: Vil checkboxen få value medlemsnummer fra databasen?

Hvordan skal delete.php se ut for å få tak i hvilke poster som skal slettes? Sql'n klarer jeg, men ikke hente valuen til arrayet checkbox.

 

på forhånd takk for svar.

(Var muligens litt innviklede spm dette, men jeg kan prøve å forklare litt nærmere hvis det trengs

Endret av el_scorcho
Lenke til kommentar
Videoannonse
Annonse

"Vil checkboxen få value medlemsnumer fra databasen?"

 

Uten at jeg har testet koden ser det slik ut ja. Du finner dette raskt ut dersom du sjekker kildekoden til den første filen i en nettleser.

 

For å kunne slette brukere bør du endre litt på oppsettet for checkboxene:

<input type="checkbox" name="delete[<?php echo "$medlemsnr";?>]" id="checkbox[]" value="1">

 

Når du sender inn dataene vil alle brukerene komme i et array tilgjengelig i $_POST['delete'], for en tenkt bruker med bruker-id 7 vil du se om vedkommende skal slettes dersom $_POST['delete']['7'] == 1. Kun brukerene du har krysset av for sletting vil "få med seg" det som står i value. Når du skal ha ut denne informasjonen kjører du ganske enkelt foreach(), som du tydeligvis har forstått selv :)

 

 

Tungvindt å forklare, spør om du lurer på noe

Lenke til kommentar
"Vil checkboxen få value medlemsnumer fra databasen?"

 

Uten at jeg har testet koden ser det slik ut ja. Du finner dette raskt ut dersom du sjekker kildekoden til den første filen i en nettleser.

 

For å kunne slette brukere bør du endre litt på oppsettet for checkboxene:

<input type="checkbox" name="delete[<?php echo "$medlemsnr";?>]" id="checkbox[]" value="1">

 

Når du sender inn dataene vil alle brukerene komme i et array tilgjengelig i $_POST['delete'], for en tenkt bruker med bruker-id 7 vil du se om vedkommende skal slettes dersom $_POST['delete']['7'] == 1. Kun brukerene du har krysset av for sletting vil "få med seg" det som står i value. Når du skal ha ut denne informasjonen kjører du ganske enkelt foreach(), som du tydeligvis har forstått selv :)

 

 

Tungvindt å forklare, spør om du lurer på noe

Takk for svar. Mulig jeg må ha ting litt inn med teskje her men:

Dette er da min kode..som tydeligvis ikke virker:

<?php 
foreach ($_POST['delete'] as $s){


echo "$s";

}
?>

Denne skriver ut "1" samme hva. Selv om medlemsnummer er 2.

Hvordan kan denne filen delete.php se ut? Er altfor lenge siden jeg drev med dette, og jeg har googlet, men fant ikke noe som passet til min kode..

Igjen, takk for svar.

Lenke til kommentar
Hehe, beklager, en stund siden jeg gjorde dette, og har ikke testet scriptet mitt selv.

 

Endre til:

<input type="checkbox" name="delete[]" id="checkbox[]" value="<?php echo "$medlemsnr";?>">

 

:)

Supert, det gjorde susen.. MEN: Jeg var nok for rask når jeg sa at jeg klarte sql'n selv..

Dette er nå min delete.php

<?php 
include ("conn.php");

foreach ($_POST['delete'] as $s){
//echo "$s";	
$sql = "DELETE * FROM slekt WHERE medlemsnr is $s";
mysql_query($sql) or die("klarte ikke å slette fra tabellen!");
//header("Location: medlem.php");
//ob_end_flush(); 
echo "$sql";
}
?>

 

Her er også conn.php som er koblingen mot databasen:

<?php mysql_connect("xxx.xx", "xxx", "xxx")
or die("Fikk ikke kontakt med databasen"); 
mysql_select_db("xxx") or die("Klarte ikke å velge databasen");
?>

Har skrevet ut $sql, og den ser veldig riktig ut, men allikevel får jeg "klarte ikke slette fra tabellen"

Noen som ser hva som er feil?

Igjen: På forhånd takk for svar.

Endret av el_scorcho
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...