I have a problem with php and checkbox. Can someone
help me with it?

I want to be able to compute values of a checkbox that is when the
checkboxes are checked using php.

example
<input type="checkbox" name="course" value="&cent;30 /> JAVA
<input type="checkbox" name="course" value="&cent;100 /> C
<input type="checkbox" name="course" value="&cent;10 /> PERL
<input type="checkbox" name="course" value="&cent;200 /> C++
<input type="checkbox" name="course" value="&cent;70 /> PHP
<input type="checkbox" name="course" value="&cent;90 /> C#

so in that case when i check C, JAVA and PHP,
the php code should be able to compute the values in cedis for me
as a user and given a summary of the course chosen and also
the total amount involved with each course chosen.

so that i have say

This is a summary of the courses registered for
JAVA 30
C 100
PHP 70

and the total amount to be paid is 200.

So what i want is the php code to help me do that.

Recommended Answers

All 6 Replies

Thank you all for ur help. But i did this and is still not working.

HTML CODE
.........

<form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="&cent;20">
JAVA<br>
<input type="checkbox" name="cd[]" value="&cent;30">
PERL<br>
<input type="checkbox" name="cd[]" value="&cent;10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="&cent;30">
C#<br>
<input type="checkbox" name="cd[]" value="&cent;90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="&cent;100">
C++<br>
<input type="checkbox" name="cd[]" value="&cent;120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>

PHP CODE FOR ACTION
..........................

<?php
$totalprice = 0;
foreach($cd as $cd)
$totalprice += $cd;
echo "$totalprice";

/*if(isset($_POST))
echo 'checked';*/
?>

Because i get the results to be 0 always.
But i would want it to compute all the courses that would checked
and the total for their price listed.

Your checkbox should look like this:
<input type="checkbox" name="cd0" value="20">x
<input type="checkbox" name="cd1" value="30">y
<input type="checkbox" name="cd2" value="100">z

php part, let say you have three checkboxes:

$total = ;
for($i=0;$i<3;$i++){
$amount = $_POST['cd'.$i];
$total += $amount;
}
echo $total;

You should change the checkbox names, they are all the same now (each checkbox name has to be unique). see my other post of identical question at http://www.daniweb.com/techtalkforums/post156340.html#post156340

Once your script know which course the user chose, you can do some math to sum up the fee based on post data.

Actually, each checkbox name does not have to be unique. In fact you can have something such as:

[HTML]

<input type='checkbox' name='myCheckbox' value='1'>
<input type='checkbox' name='myCheckbox' value='2'>
<input type='checkbox' name='myCheckbox' value='3'>
<input type='checkbox' name='myCheckbox' value='4'>

[END HTML]

[PHP]

/***********
$_REQUEST['myCheckbox'] will equal an array of selected values.
***********/

foreach($_REQUEST['myCheckbox'] as $singleVar)
{
      //$singleVar will equal the value of a selected checkbox, 
}

[END PHP]

Maybe I didn't read the thread thoroughly enough... I apologize if I missed something.

-Adam

Thank you all for ur help. But i did this and is still not working.

HTML CODE
.........

<form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="&cent;20">
JAVA<br>
<input type="checkbox" name="cd[]" value="&cent;30">
PERL<br>
<input type="checkbox" name="cd[]" value="&cent;10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="&cent;30">
C#<br>
<input type="checkbox" name="cd[]" value="&cent;90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="&cent;100">
C++<br>
<input type="checkbox" name="cd[]" value="&cent;120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>

PHP CODE FOR ACTION
..........................

<?php
$totalprice = 0;
foreach($cd as $cd)
$totalprice += $cd;
echo "$totalprice";

/*if(isset($_POST))
echo 'checked';*/
?>

Because i get the results to be 0 always.
But i would want it to compute all the courses that would checked
and the total for their price listed.

<form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>
<?php
        $totalprice = 0;
        foreach($_POST['cd'] as $cd) $totalprice += $cd;
        echo "$totalprice";
?>
<form action="testcheckbox.php" method="POST" name="form1">
<p>Name :
<input type="text" name="textfield">
</p>
<p>Course:
<input type="text" name="textfield">
</p>
<p>Tel No:
<input type="text" name="textfield">
</p>
<p>
<input type="checkbox" name="cd[]" value="20">
JAVA<br>
<input type="checkbox" name="cd[]" value="30">
PERL<br>
<input type="checkbox" name="cd[]" value="10">
PYTHON<br>
<input type="checkbox" name="cd[]" value="30">
C#<br>
<input type="checkbox" name="cd[]" value="90">
JYTHON<br>
<input type="checkbox" name="cd[]" value="100">
C++<br>
<input type="checkbox" name="cd[]" value="120">
PHP</p>
<p align="center">
<input type="submit" name="Submit" value="Join Now">
</p>
<p align="left"> <br>
</p>
</form>
<?php
        $totalprice = 0;
        foreach($_POST['cd'] as $cd) $totalprice += $cd;
        echo "$totalprice";
?>

Depending on your PHP configuration $_POST and $cd could potentially reference the same variables. Try changing your foreach statement to :

foreach($_POST as $singleCD)

Also, one thing that I have found useful while doing server side processing with PHP is to actually view the array keys of the POST variable.

You can do so with the array_keys() function.

foreach(array_keys($_POST) as $myKey)
echo $myKey."<br />";


I have seen situations before where the browser can prematurely close a form (prior to the closing form tag) and elements such as checkboxes and text fields can be completely ignored. If changing the variable names within the foreach does not work, verify that you're actually receiving the variables as part of the POST array. Does this make sense?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.