Avatar billede snigeren Nybegynder
11. juli 2007 - 14:49 Der er 7 kommentarer og
1 løsning

if checkbox = ja så send følgende info til db´en

Sikkert et dumt spørgsmål, here goes:

Jeg henter x-antal checkboxes ind som følgende:

$query1 = mysql_query("SELECT * FROM shop_surface WHERE type='staal'")or die(mysql_error());

her et lille udsnit af hele scriptet:

echo '<tr><td colspan="2"><br>Stål</td></tr>';
while($row = mysql_fetch_array($query1))
{
echo '<tr><td colspan="2"><input type="checkbox" name="';
echo $row['surfacenavn'];
echo '" value="checkbox"><input type="hidden" name="farvekode" value="';
echo $row['farvekode'];
echo '">';
echo $row['surfacenavn'];
echo '</td></tr>';
}

Mit problem er så som følger: Af de checkboxes der vises skal jeg kun bruge dem der bliver checked til noget. Det skal være sådan at if checkbox checked lav en entry i shop_surface_dd for hver af de checkboxes der bliver udfyldt. Hver entry skal have en farvekode, surfacenavn og så et nummer jeg gir dem.

Men kan ikke helt lige holde styr på alle de mange ting i mit hoved så jeg tyr til hjælp her =)

Håber nogen kan hjælpe mig med problemet.
Avatar billede coderdk Praktikant
11. juli 2007 - 15:39 #1
echo '<tr><td colspan="2"><br>Stål</td></tr>';
while($row = mysql_fetch_array($query1))
{
  echo '<tr><td colspan="2"><input type="checkbox" name="ids[]"';
  echo '" value="' . $row['surfacenavn'] . ":" . $row['farvekode'] . '">';
  echo $row['surfacenavn'];
  echo '</td></tr>';
}

I dit script kan du så:

$ids = ( isset( $_POST['ids'] ) && is_array( $_POST['ids'] ) ? $_POST['ids'] : array() );
echo "Valgte:<br>";
foreach( $ids as $id )
{
  list($surfacenavn, $farvekode) = explode(":", $id);
  echo "Surfacenavn: $surfacenavn Kode: $farvekode<br>";
}
Avatar billede snigeren Nybegynder
11. juli 2007 - 16:45 #2
ja altså det ser jo rigtig godt ud, men kan jeg lokke dig til at forklare lidt, hvad de forskellige scripts gør? jeg vil meget gerne forstå =)
Avatar billede coderdk Praktikant
11. juli 2007 - 17:17 #3
Ok :) Well HTML'en er simpel. Den generer f.eks:

<input type="checkbox" name="ids[]" value="etnavn:enkode">

Er der flere checked gør name="ids[]" at formen leverer et array til PHP.

$ids = ( isset( $_POST['ids'] ) && is_array( $_POST['ids'] ) ? $_POST['ids'] : array() );

Her checker jeg at ids er sat (er den nok ikke hvis ingen checkboxes er afkrydset). Hvis der ikke er sat nogen laver jeg selv et array, for at kunne bruge foreach()...

foreach( $ids as $id )
{
  list($surfacenavn, $farvekode) = explode(":", $id);
  echo "Surfacenavn: $surfacenavn Kode: $farvekode<br>";
}

Foreach tager hvert element i arrayet fra en ende af. Elementerne har værdier i formatet etnavn:enkode så vi kan splitte dem op ved : det gør jeg så med list() og explode()

Simpelt :) Kig evt. på php.net dokumentationen hvis jeg har været uklar, eller spørg :)
Avatar billede coderdk Praktikant
11. juli 2007 - 17:17 #4
Du får også lige et svar :)
Avatar billede snigeren Nybegynder
11. juli 2007 - 17:56 #5
mange tak for den ellers tydelige udredning,.. jeg har desværre ikke lige tid nu her til at se på det... men er du til at få fat på i morgen formiddag hvis jeg har flere spørgsmål? Hvilket jeg helt sikkert har =)

lige et spørgsmål til på vejen,..  value="etnavn:enkode" når du nu skriver det der, hvad er det så? skriver den navnet på venstre side af :  og koden på højre side?
Avatar billede coderdk Praktikant
11. juli 2007 - 22:46 #6
Ja, etnavn er $row['surfacenavn'] og enkode er $row['farvekode']. Jeg brugte : som adskiller, men du kan bruge hvad som helst... Så skal du bare lige lave explode'en og . ":" . om ...
Jeg kigger på eksperten når jeg tid, eller lige skal have en pause fra hvad jeg laver. Så det er da muligt at jeg ser med i morgen ;)
Avatar billede snigeren Nybegynder
12. juli 2007 - 13:11 #7
coder du er en knag =)
Det virker bare 10-4... så skal jeg bare ha resten af admin siden op at køre og så lige frontend :D

men so far, mange tak for hurtig og præcis hjælp og god forklaring. En dag vil jeg oxo være go til php :P
Avatar billede coderdk Praktikant
12. juli 2007 - 13:21 #8
(c: det var så lidt - god fornøjelse :)
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