Liquid Core
Liquid Core

Reputation: 1

Retrieve mysql value from php for radio buttons

As trivial as it can seems, I'm having problems retrieving values for radio buttons from MySql database through PHP. It's my first learning project so I'm trying my best

Question has already been asked but I found no useful answer.

The php code does a simple "Select *" so I retrieve all the fields.

This is the php code

<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "A") { echo "true"; }?>  value="A">A
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "B") { echo "true"; }?> value="B">B</br></br>

and I retrieve the values with mysqli_fetch_array().

This is the result:

enter image description here

As you can see the label retrieves the correct value, the radio buttons not.

I've already tried putting == instead of = and putting ' instead of " but I don't know why the checkbox "B" is checked, since Owner value is A.

Also, if there are any best practices which are better than this, you're welcome.

Upvotes: 4

Views: 37742

Answers (5)

Mostafa Aabed
Mostafa Aabed

Reputation: 11

$owner=$row['owner'];
$owners= ['A'=>'', 'B'=> ''];
$owners[$owner] = 'checked';

<input type="radio" name="Owner" <?php echo $owners['A']?>  value="A">A
<input type="radio" name="Owner" <?php echo $owners['B']?>  value="B">B

i think it's easy and simple and so useful if you have many values in DB.

Upvotes: 0

Muhammad
Muhammad

Reputation: 1

$gender=$row['gender'];


<input type="radio" name="gender" <?php if($gender=="Male"){?> checked="true" <?php } ?> />Male

<input type="radio" name="gender" <?php if($gender=="Female"){?> checked="true" <?php } ?>/>Female

Upvotes: 0

shabir ullah
shabir ullah

Reputation: 153

i tried the answer given by @trincot but it give me errors so i have make little changes to improve the answer

<input type="radio" name="Owner" <?php if($row['Owner']=="A") {?> <?php echo "checked";?> <?php }?> value="A">A

<input type="radio" name="Owner" <?php if($row['Owner']=="B") {?> <?php echo "checked";?> <?php }?> value="B">B

Upvotes: -1

trincot
trincot

Reputation: 349946

The HTML attribute checked should not get a value, its mere presence indicates that the radio button is checked. So do this:

<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" <?php if($row['Owner']=="A") {echo "checked"}?> value="A">A
<input type="radio" name="Owner" <?php if($row['Owner']=="B") {echo "checked"}?> value="B">B

Or using the more compact short echo tag <?= .. ?> and ternary operator:

<label>Owner: <?=$row['Owner']?></label></br>
<input type="radio" name="Owner" <?=$row['Owner']=="A" ? "checked" : ""?> value="A">A
<input type="radio" name="Owner" <?=$row['Owner']=="B" ? "checked" : ""?> value="B">B

Note that you need double equals signs for comparisons.

Upvotes: 12

jay
jay

Reputation: 134

try this code not = but use ==

<input type="radio" name="Owner" <?php if($row['Owner'] == "A") { echo "checked"; }?> value="A">

Upvotes: 4

Related Questions