2015-11-07 4 views
2

Как ни странно, как мне кажется, у меня возникают проблемы с получением значений для переключателей из базы данных MySql через PHP. Это мой первый учебный проект, поэтому я стараюсь изо всех сил.Извлечь значение mysql из php для радиокнопки

Вопрос уже задан, но я не нашел полезного ответа.

PHP-код делает простой «Select *», поэтому я извлекаю все поля.

Это код PHP

<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> 

, и я получить значения с mysqli_fetch_array().

Это результат:

enter image description here

Как вы можете видеть, метка извлекает правильное значение, кнопки радио нет.

Я уже пытался ставить == вместо = и положить "вместо", но я не знаю, почему флажок „B“ проверяется, так как владелец значение A.

Кроме того, если любые лучшие практики, которые лучше, чем это, вы радушны.

+0

вы ясно, но, возможно, не я. Я четко заявил: «Я уже пробовал помещать == вместо = и ставить« вместо », но я не знаю, почему установлен флажок« В », так как значение« Owner »равно A.» –

ответ

6

HTML attribute checked не должен получить значение, само его наличие указывает на то, что радио-кнопка проверено , Так что это:

<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 

Или, используя более компактную short echo tag <?= .. ?> и 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 

Обратите внимание, что вам нужно двойной знак равенства для сравнения.

2

попробовать этот код не = но использовать ==

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

Опять же. ... вы, ребята, читали то, что я написал? –

+0

hey bro попробуйте этот код для обеих строк – jay

+0

@ LiquidCore - он также использует «checked» вместо «true», чтобы отметить, что проверено. –

-1

я попробовал ответ, данный @trincot, но это дает мне ошибки так что я сделать небольшие изменения, чтобы улучшить то ответ

<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 
0
$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 
+1

Это (что следует избегать как можно больше на SO, потому что он плохо справляется с обучением будущих читателей). Радиовходы не имеют атрибутов значений, поскольку использование фрагмента OP s. Если вы собираетесь писать новый ответ на вопрос, который уже имеет образовательное и рабочее решение, вам нужно принести новую информацию или новую технику, которая является ценной для страницы ... в противном случае это просто раздувание страницы, что SO и его читатели могут обойтись. – mickmackusa

Смежные вопросы