Ali
Ali

Reputation: 10453

if checkbox is checked change the value using PHP

I'm trying to accomplish one simple task (but is not simple for me).

I have a form and I'm having a trouble with this check box.

    <input type="checkbox" name="b"  
<?php if (isset($_POST[b])) echo "value='y'"; else echo "value='n'"; ?>/>

I'm not sure if I use the right one, but it doesn't work for me.

So basically I want the value of the input of b will be y if the checkbox is checked else it will always be n if the checkbox is unchecked.

Upvotes: 1

Views: 41819

Answers (5)

Zetty 0905
Zetty 0905

Reputation: 1

*Approved by Deployment:

        <input type="radio" name="dep_approval_status" value="Approved"
            <?php 
                if ($deploy['dep_approval_status'] === "Approved")
                {
                    echo ' checked'; 
                }

            ?> 
        /> Yes, approved 

        <input type="radio" name="dep_approval_status" value="Not Approved"
            <?php 
                if ($deploy['dep_approval_status'] === "Not Approved")
                {
                    echo ' checked';
                }
            ?> 
        /> Not Approved

Upvotes: 0

Justin Archiquette
Justin Archiquette

Reputation: 1

This worked for me:
    first: Giving the checkbox a default value
    then: assign the desired value only if the box is checked.

    <input type="hidden" name="b" value="n">
    <input type="checkbox" name="b" value="y" >

Upvotes: 0

Ravi Kant Mishra
Ravi Kant Mishra

Reputation: 768

You have to use two conditions one is for showing checked/unchecked and second for showing y/n

 <input type="checkbox" name="b" <?php echo (isset($_POST['b'])?"value='y'":"value='n'")?> 
 <?php echo (isset($_POST['b'])?"checked":"") ?>  />

Upvotes: 2

sachleen
sachleen

Reputation: 31131

That's not how a checkbox works.

It's checked when the checked attribute is there.

<input type="checkbox" name="a" value="a" checked /> Checked
<input type="checkbox" name="a" value="a" /> NOT Checked

So you want to use

<input type="checkbox" name="a" value="a" <?php echo isset($_POST['b']) ? "checked" : ""; ?>/>

Now if $_POST['b'] is set, the checkbox will be checked.

Also, you have $_POST[b]. The b should be in quotes. It should be $_POST['b']

Upvotes: 4

user1461434
user1461434

Reputation: 11

tested code!

<form method="post">
   <input type="checkbox" name="b" <?php if (isset($_POST['b'])) echo "value='y'"; else echo "value='n'"; ?>/>
   <input type="submit" name="asd" value="asd">
</form>

So go with the following

<?php if (isset($_POST['b'])) echo "value='y'"; else echo "value='n'"; ?>

Upvotes: 0

Related Questions