Goedemiddag,

Ben nu al een tijdje bezig met onderstaande en ik kom niet verder dan dat die het id nummer van de checkbox insert. Nieuwe records worden dus toegevoegd waarbij alleen de waarde van de checkbox mee gaat. Overige waarden pakt die alleen de standaard waarden die het formulier toont. het selecteren van meerdere rijen en die toevoegen werkt, het zit hem puur en alleen in die overige waarden.

Onderstaand de code die het formulier afhandelt en hoe een rij in het betreffende form staat.

Hopelijk kan iemand mij hierbij helpen, alvast enorm bedankt !

Gr
Dennis


<? if(isset($_POST['Verwerken']) and prevent_multi_submit()) 
{
	
if(empty($_POST['dienst']) ){
	echo "<font color='#ff0000'><b>U bent vergeten diensten te selecteren die u wilt doorvoeren</b></font>";
}else{

for($i = 0 ; $i <count ($_POST['dienst']);$i++)
{


$result = mysql_query("INSERT INTO urenbriefjes SET kandidaat = '".mysql_real_escape_string($_POST['kandidaat'])."', client = '" .mysql_real_escape_string($_POST['organisatie']). "', datum = '" .mysql_real_escape_string($_POST['datum']). "', locatie = '" .mysql_real_escape_string($_POST['locatie']). "', begintijd='".mysql_real_escape_string($_POST['begin'])."',  eindtijd='".mysql_real_escape_string($_POST['eind'])."',  uren ='".mysql_real_escape_string($_POST['uren'])."',  kmww ='".mysql_real_escape_string($_POST['kmww'])."', kmintern ='".mysql_real_escape_string($_POST['kmintern'])."', numid = '".mysql_real_escape_string($_POST['dienst'][$i])."'  ") 
or die(mysql_error());

}

echo "<font color='#ffffff'><b>De dienst(en) zijn succesvol toegevoegd in het systeem</b></font>";


}
}
?>


Rij in form :

<tr>
    <td height="14" width="5%" align="left" valign="middle">
						<input name="dienst[]" id="dienst" type="checkbox" value="1" />
						</td>
							<td class='tablerow1' width='15%'><select name="kandidaat" class="entryfield" id="kandidaat">
							<option value="selecteer">Maak uw keuze</option>
                            <?
								$sql = "SELECT * FROM kandidaten GROUP BY kandidaat ASC"; 
								$res = mysql_query($sql) or die(mysql_error()); 
								while ($row = mysql_fetch_array($res)) { 
								
									echo "<option value='".$row['kandidaat']."'>".$row['kandidaat']."</option>";	  

								}
							?>
                          
						</select></td>
                        <td class='tablerow1' width='15%'><select name="organisatie" class="entryfield" id="organisatie">
							<option value="selecteer">Maak uw keuze</option>
                            <?
								$sql = "SELECT * FROM login GROUP BY organisatie ASC"; 
								$res = mysql_query($sql) or die(mysql_error()); 
								while ($row = mysql_fetch_array($res)) { 
								
									echo "<option value='".$row['organisatie']."'>".$row['organisatie']."</option>";	  

								}
							?>
                          
						</select></td>
							<td class='tablerow3' width='15%'><input name="locatie" type="text" class="entryfield" id="locatie" value=" " /></td>
                            <td class='tablerow3'><input name="datum" type="text" class="entryfield" id="datum" size="8" value="dd-mm-jjjj " /></td>
							<td class='tablerow3'><input name="begin" type="text" class="entryfield" id="begin" size="8" value="00:00 "></td>
							<td class='tablerow3'><input name="eind" type="text" class="entryfield" id="eind" size="8" value="00:00 "></td>
							<td class='tablerow3'><input name="uren" type="text" class="entryfield" id="uren" size="5" value="0 "></td>
							<td class='tablerow3'><input name="kmww" type="text" class="entryfield" id="kmww" size="5" value="0 "></td>
							<td class='tablerow3'><input name="kmintern" type="text" class="entryfield" id="kmintern" size="5" value="0 "></td>
							

                            
                           
						</tr>
Verbeteringen op je code:

- 1: Gebruik [ignore]<?php[/ignore] ipv [ignore]<?[/ignore]
- 1: Wat doet prevent_multi_submit()?
- 8: Wat ik zelf doe:


<?php
foreach($_POST['dienst'] as $value){
// insert
}
?>


- 12: Gebruik liever mysqli, mysql is verouderd en verdwijnt in de toekomst
- 12: Een INSERT statement hoort er zo uit te zien:


INSERT INTO (
             Veld1,
             Veld2,
             Veld3
            )
     VALUES (
             'Waarde1',
             'Waarde2',
             'Waarde3'
            )

Wat jij probeert te doen is een UPDATE.

- 13: Gebruik liever niet or die(), bouw een juiste foutenafhandeling

Vraag aan jou: Wat wil je bereiken met regel 3 van je formulier?
Hoi Peter,

Dank voor de tips. Ga ik meteen even mee aan de slag.
Prevent multi submit is nog een stukje van een oude code van mij die ik nu aan het ombouwen ben, die gaat/moet er ook uit.

Regel 3 doel je denk ik op de checkbox ? Zo ja, ik kreeg het niet voor elkaar dat die een waarde mee gaf in een array. Met die haakjes [] pakt die het wel mee. Nu dus alleen nog de rest van de opgegeven waarden. Als ik alles aangepast heb laat ik even de uitkomst weten.

Alvast bedankt !

gr
Dennis
Regel 3 doel ik inderdaad op de checkbox, maar als ik je script zie is er maar één checkbox, dus is het niet zoals dit:


<input type="checkbox" name="Checkbox[]" value="Waarde1">
<input type="checkbox" name="Checkbox[]" value="Waarde2">
<input type="checkbox" name="Checkbox[]" value="Waarde3">
<input type="checkbox" name="Checkbox[]" value="Waarde4">
<input type="checkbox" name="Checkbox[]" value="Waarde5">


Dat is in principe enkel relevant als je gegevens uit een Database selecteert, als voorbeeld even te noemen, je hebt 10 gebruikers en wilt er 3 verwijderen, dat je deze kunt selecteren. Bij jou zie ik maar 1 checkbox, dus voldoet dit:


<?php
// PHP GEDEELTE
if(isset($_POST['Checkbox'])){
// doe je ding
}
?>
<!-- HTML GEDEELTE -->
<input type="checkbox" name="Checkbox" value="Waarde">
Peter,

INSERT INTO tabelnaam
SET kolomnaam = 'waarde'

Dit kan gewoon in MySQL
Eerlijk gezegd gebruik ik ook altijd de manier die Peter gebruikt, ik was ook niet op de hoogte van die methode Ger. Wel interessant overigens:


INSERT inserts new rows into an existing table. The INSERT ... VALUES and INSERT ... SET forms of the statement insert rows based on explicitly specified values. The INSERT ... SELECT form inserts rows selected from another table or tables. INSERT ... SELECT is discussed further in Section 13.2.5.1, “INSERT ... SELECT Syntax”.


http://dev.mysql.com/doc/refman/5.6/en/insert.html

De manier van (andere) Peter is ook de goede manier, maar daar loopt het script van TS niet op fout, vandaar dat ik het even aangaf.
Zijn we weer... Peter wat je zei heb ik geprobeerd maar kwam er niet uit. Heb het nu als volgt staan en de query is goed. Alleen pakt hi jdus niet de waarden mee uit het form. Ik had 1 checkbox eerder gepost, maar in totaal heeft mijn form er 20 zodat je max 20 opdrachten tegelijk kan invoeren. Hiervoor dient de betreffend eregel dan wel aangevinkt te zijn dmv de checkbox.

Probleem nu...hij maakt maar 1 rij aan en neemt helemaal geen waarden meer mee... Wellicht is het iets simpels, maar hoor graag jullie advies. Ben zelf geen doorgewinterde specialist hierin, maar als hobby vind ik het erg leuk. Elke dag leer je weer bij niet waar.



<?php if(isset($_POST['Verwerken']) ) 
{
	
if(empty($_POST['dienst']) ){
	echo "<font color='#ff0000'><b>U bent vergeten diensten te selecteren die u wilt doorvoeren</b></font>";
}else{


// insert

$sql = "INSERT INTO urenbriefjes SET numid = '" . mysql_real_escape_string($_POST['dienst'][$i])."', kandidaat='" . mysql_real_escape_string($_POST['kandidaat'])."', client = '".mysql_real_escape_string($_POST['organisatie'])."', datum = '".mysql_real_escape_string($_POST['datum'])."', locatie = '".mysql_real_escape_string($_POST['locatie'])."', begintijd = '".mysql_real_escape_string($_POST['begin'])."', eindtijd = '".mysql_real_escape_string($_POST['eind'])."', uren = '".mysql_real_escape_string($_POST['uren'])."', kmww = '".mysql_real_escape_string($_POST['kmww'])."', kmintern = '".mysql_real_escape_string($_POST['kmintern'])."' ";
$res = mysql_query($sql);


    if ($res == false)
    {
        echo "Query mislukt. Foutmelding: " . mysql_error();
    }
    else
    {
        echo "Query gelukt!";
    }




echo "<font color='#ffffff'><b>De dienst(en) zijn succesvol toegevoegd in het systeem</b></font>";


}
}
?>


Bedenk dat een checkbox alleen wordt doorgegeven via POST of GET wanneer checked true is. Is die vals dan wordt het element niet meegestuurd middels GET of POST.

Reageren