Checkboxes versturen

Status
Niet open voor verdere reacties.

tsedney

Gebruiker
Lid geworden
2 jun 2008
Berichten
42
Hallo allemaal :thumb:

Ik heb een tabel in SQL gemaakt. In deze tabel staan allemaal namen met een ID.
Ik wil deze tabel gebruiken op per naam een checkbox te generen. Elke naam moet dus een eigen checkbox krijgen.

Als iemand dan een checkbox afvinkt (1 of meer) wordt het resultaat naar een tabel geschreven.

Ik heb al zoiets:


PHP:
$sql = "SELECT * FROM cc_employees";

if(!$res = mysql_query($sql))
{
    trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
    echo 'Geen resultaten gevonden';
}
else
{
    while($row = mysql_fetch_assoc($res))
    {
        echo '<input type="checkbox" name="employees_id"="'.$row['employees_id'].'">'.$row['name'].'</option>';
    }
}
?>
</select>

employees_id is de id van de naam. name drukt hij af achter de checkbox.

Het verschijnt wel op het scherm... een checkbox met een naam die uit de database komt. Maar er wordt niks verstuurd naar de database.


Met dit stuk code probeer ik de id's in de database te inserten. Maar het lukt niet.
PHP:
<?php

mysql_connect("localhost", "root");
mysql_select_db ("cockpitcheck")
or die ("fout");
$employee_id = $_POST['employees_id'];

	
	$query= "INSERT INTO cc_check_employees (employees_id) VALUES ('$employee_id')";
		
	$result = mysql_query($query) or die (mysql_error());
?>


Iemand een idee?
 
PHP:
echo '<input type="checkbox" name="employees_id"="'.$row['employees_id'].'">'.$row['name'].'</option>';
Daar is natuurlijk geen touw aan vast te knopen.

Je start een <input> maar sluit een </option> af :confused:

Daarnaast gaat name="employees_id"="'. $row['employees_id'] .'"> ook nooit werken.

Dit zal beter werken:
PHP:
echo '<input type="checkbox" name="employees_id" value="'.$row['employees_id'].'" />'.$row['name'];
 
Hoi, thanks!
ik heb de regel veranderd. Hij maakt wel een regel aan in de database, maar hij zet niet de gegevens van die id's in de tabel?
Heb je nog een ideeetje misschien?
 
Zet eens bovenaan je verwerkingsscript
PHP:
print_r($_POST['employees_id']);
Ik vermoed dat hij een enkele checkbox meeneemt en daar van de waarde weergeeft.
 
Hij print nu de waarde on. Ook als ik twee checkboxes afvink, krijg ik 1 keer de waarde on afgedrukt.

Geen idee.. wat ik hier mee moet :o
 
PHP:
echo '<input type="checkbox" name="employees_id[]" value="'.$row['employees_id'].'" />'.$row['name'];

Vervolgens komen alle geselecteerde boxes in een array.

Kwestie van die array uitlezen.
 
PHP:
echo '<input type="checkbox" name="employees_id[]" value="'.$row['employees_id'].'" />'.$row['name'];

Vervolgens komen alle geselecteerde boxes in een array.

Kwestie van die array uitlezen.

Hoe doe ik dit? ik ben de weg volkomen kwijt, ben al voor het weekend bezig geweest :confused:
 
Je hebt de regel aangepast zoals ik vermeldde?

Als je dan op die verwerkpagina nog print_r($_POST['employees_id']); hebt staan zul je bij meerdere selecties ook meerdere waardes verschijnen.

Klopt?
 
Ik heb de regel verandert. Ik krijg nu inderdaad steeds andere waardes geprint (Array [0] => on) En als ik een andere checkbox afvink wat anders.

Zou graag nu willen dat de waarden die namen (id) in een andere database worden gezet.

Ik heb dus een tabel
CC_employees
employees_id
name

Aan die tabel zijn de checkboxes gekoppeld. Maar ik heb geen id 0 hij laat wel array 0 zien.
Ik wil graag dat hij de employees_id die worden afgevinkt neer zet in tabel
CC_checks_employees
Check_id
employees_id <---- hier in dus.


Hoop dat je me nog begrijpt thanks alvast:p
 
Hij geeft elke waarde als het goed is weer. Het eerste getal is de sleutel voor de waarde.

Dus array[0] => on geeft aan dat het veld met de waarde ON is geselecteerd.

Hij hoort na de => de waarde van een checkbox te geven.

Doet hij dit niet dan klopt er iets niet in je waardes.
 
Hij geeft inderdaad niet aan welke checkbox is aangevinkt.

Maar die checkboxes staan in een while
while($row = mysql_fetch_assoc($res))

ligt het daar niet aan?
 
Kijk eens in de bron wanneer je de lijst met checkboxes voor je hebt.

Controleer of dat allemaal klopt.
 
Je hebt dus niet alles overgenomen.

Dit moet je hebben:
PHP:
echo '<input type="checkbox" name="employees_id[]" value="'.$row['employees_id'].'" />'.$row['name'];
 
Oops! :o

Hij gaat nu wel goed :thumb: Alleen krijg ik hem nog niet in de database gepropt
 
Hangt er van af wat je precies wilt.

Voor elke checkbox een nieuw record?
Dan wordt het:
PHP:
<?php 

mysql_connect("localhost", "root"); 
mysql_select_db ("cockpitcheck") 
or die ("fout");

$query = "INSERT INTO cc_check_employees (employees_id) VALUES ";
foreach($_POST['employees_id'] AS $key => $id) {
  $query .= "('". $id ."'),";
}
$query = substr($query, 0, -1);
$result = mysql_query($query) or die (mysql_error()); 
?>
Mocht dat niet werken dan moet je even voor $result echo $query; zetten.
 
Dit werkt!!! Heel erg bedankt.. Hij maakt nu wel voor elke checkbox een nieuwe aparte regel aan.

Eigenlijk wil ik per keer dat ik hem verstuur 1 regel in de database maken, en alle afgevinkte checkboxes er in zetten. Dus niet voor elke afgevinkte checkbox een regel aanmaken..

Hoe krijg ik dit voor elkaar?

Thanks!! :thumb:
 
Voor een database is het niet handig om meerdere waardes in een veld te stoppen.
Dat heet "databasevervuiling".

Dan kun je beter dat extra veld visible gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan