Checkbox verwerken met php

Status
Niet open voor verdere reacties.

Ewergreen

Gebruiker
Lid geworden
15 mrt 2008
Berichten
273
Ik zou de value van mijn checkbox moeten kunnen uitlezen met php. Nu lukt dit mij voor alle andere input fields, maar niet voor de checkbox.

Het is vrij simpel. Als hij ge'checkt is, dan wil ik dat hij de standaardvalue="8" wegschrijft. Staat er geen vinkje, dan blijft hij blanco.

Ik zou het dus zover moeten kunnen krijgen dat ik weet of, voorbeeld: asq7 = 8 of aan 0.

PHP:
<?php session_start();
error_reporting(0);
include('connection.php');

$asq7=$_POST['asq7'];
$asq8=$_POST['asq8'];
$asq9=$_POST['asq9'];

$semail=$_SESSION['semail'];

if(isset($_POST['submit'])) 
  {
	$sql=" UPDATE calculator SET asq7='$asq7',
								 asq8='$asq8',
								 asq9='$asq9' WHERE email='$semail' ";
	
	
		  
	$query=mysql_query($sql) or die ("Kon de query niet uitvoeren");
	
	header ("Location: page3.php");
	
   }
else
   {

?>


HTML:
<form action="page1.php" method="post">
<input type="hidden" name="email" value="<?=$_SESSION['semail']?>" />
<table cellpadding="5" cellspacing="5">
  <tr>
    <td></td>
    <td>Maandag</td>
    <td>Dinsdag</td>
    <td>Woensdag</td>
    <td>Donderdag</td>
    <td>Vrijdag</td>
    <td>Zaterdag</td>
    <td>Zondag</td>
  </tr>
  <tr>
    <td>Dag</td>
    <td><input type="checkbox" name="asq7" value="8"></td>
    <td><input type="checkbox" name="asq8" value="8"></td>
    <td><input type="checkbox" name="asq9" value="8"></td>
    <td><input type="checkbox" name="scmq1" value="8"></td>
    <td><input type="checkbox" name="scmq2" value="8"></td>
    <td><input type="checkbox" name="scmq3" value="8"></td>
    <td><input type="checkbox" name="scmq4" value="8"></td>
  </tr>
  <tr>
    <td>Vroege shift</td>
    <td><input type="checkbox" name="scmq5" value="8"></td>
    <td><input type="checkbox" name="scmq6" value="8"></td>
    <td><input type="checkbox" name="scmq7" value="8"></td>
    <td><input type="checkbox" name="scmq8" value="8"></td>
    <td><input type="checkbox" name="scmq9" value="8"></td>
    <td><input type="checkbox" name="scmq10" value="8"></td>
    <td><input type="checkbox" name="scmq11" value="8"></td>
  </tr>
  <tr>
    <td>Late shift</td>
    <td><input type="checkbox" name="scmq12" value="8"></td>
    <td><input type="checkbox" name="scmq13" value="8"></td>
    <td><input type="checkbox" name="scmq14" value="8"></td>
    <td><input type="checkbox" name="scmq15" value="8"></td>
    <td><input type="checkbox" name="scmq16" value="8"></td>
    <td><input type="checkbox" name="scmq17" value="8"></td>
    <td><input type="checkbox" name="ppq1" value="8"></td>
  </tr>
  <tr>
    <td>Nacht</td>
    <td><input type="checkbox" name="ppq2" value="8"></td>
    <td><input type="checkbox" name="ppq3" value="8"></td>
    <td><input type="checkbox" name="ppq4" value="8"></td>
    <td><input type="checkbox" name="ppq5" value="8"></td>
    <td><input type="checkbox" name="ppq6" value="8"></td>
    <td><input type="checkbox" name="mcq1" value="8"></td>
    <td><input type="checkbox" name="mcq2" value="8"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>Overuren</td>
    <td><input type="text" name="mcq4" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="mcq5" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="asq7" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="asq7" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="asq7" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="asq7" maxlength="2" style="width:25px;"></td>
    <td><input type="text" name="asq7" maxlength="2" style="width:25px;"></td>
  </tr>
</table>
 
Dit was dus blijkbaar wishfull thinking :D

PHP:
if(isset($_POST['submit'])) 
  {

 if ($asq7=="8")
		{		
  
	$sql=" UPDATE calculator SET asq7='$asq7',

Hoewel de logica min of meer zou moeten kloppen... .

En onderstaande werkt ook niet :(
PHP:
$asqa7=$_POST['asqa7'];
$asq8=$_POST['asq8'];
$asq9=$_POST['asq9'];

 if ($asqa7=="8")
		{
		$asqa7 = "$asq7";
		}
 
Laatst bewerkt:
Waar komt die extra 'a' vandaan? Die zit namelijk niet in de name van de input :)

PHP:
$asqa7=$_POST['asqa7'];

En misschien moet je je variabelen duidelijkere namen geven, dat maakt het voor ons een stuk makkelijker om je te helpen ;)
 
Waar komt die extra 'a' vandaan? Die zit namelijk niet in de name van de input :)

PHP:
$asqa7=$_POST['asqa7'];

En misschien moet je je variabelen duidelijkere namen geven, dat maakt het voor ons een stuk makkelijker om je te helpen ;)

Ja, die extra a was om iets te proberen, maar dat lukte niet. Die namen van die variabelen zijn logisch voor mij, maar ik kan begrijpen dat ze misschien niet super evident zijn.

Maar langs de andere kant, als ik de oplossing weet voor asq7, dan lukt de rest ook wel :). Maar ik heb nu dus echt geen idee hoe ik het kan doen.
 
Hm, ok.

Voor een checkbox geldt dat als hij aangevinkt is, hij in $_POST komt, en anders niet.

Dus, om te kijken of hij aangevinkt is, doe je:

HTML:
<input type="checkbox" name="mijn_checkbox" value="3" />

PHP:
if ( isset ( $_POST['mijn_checkbox'] ) ) {
  // aangevinkt
  // $_POST['mijn_checkbox'] heeft nu als waarde '3'
}
else {
  // niet aangevinkt.
  // $_POST['mijn_checkbox'] bestaat niet
}

Houd er wel rekening mee dat gebruikers vrij eenvoudig het "value" element kunnen wijzigen, en andere dingen dan 3 mee kunnen sturen, het is aan te raden om dit aan de server kant nog extra te beschermen :)
 
Hij komt enkel lokaal via xampp op usb stick te staan, dus op zich geen probleem :)

Ik ben aan het knutselen met uw "oplossing", maar ik heb toch niet meteen het verhoopte succes :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan