2013-12-02 2 views
0

У меня есть форма, в которой есть поля, которые автоматически заполняются данными из таблицы mysql. В частности, два поля ввода флажка для двух типов ролей; instructor и contact. Сначала я сохранил значения в таблице как 1 или 0, чтобы указать true или false. Человек может быть тем или иным, ни тем, ни другим. Когда я пытаюсь показать эти значения с помощью флажка, я не получаю результата. Если значение в таблице для конкретной роли равно 1 Я хочу установить флажок checked. Я не получаю никаких результатов.Показать флажок установлен или нет на основе значения таблицы mysql

DB запросов и отображение:

$db_select = $db_con->prepare(" 
    SELECT  a.name, 
       a.academy_id, 
       p.contact_role, 
       p.instructor_role 
     FROM academy a 
     LEFT JOIN person p ON a.academy_id = p.academy_id 
     WHERE a.academy_id = :id 
    "); 
    if (!$db_select) return false; 
    if (!$db_select->execute(array(':id' => $id))) return false; 
    $results = $db_select->fetchAll(\PDO::FETCH_ASSOC); 
    if (empty($results)) return false; 
    $result = ''; 
    foreach ($results as $value){ 
     $result .= "<ul>"; 
     $result .= "<li><input id=\"person_contact\" name=\"person_contact\" type=\"checkbox\"". $contact_role = $value2['contact_role'] == "1" ? "checked='checked'" : "" ." />Concact</li>"; 
     $result .= "<li><input id=\"person_instructor\" name=\"person_instructor\" type=\"checkbox\"". $instructor_role = $value2['instructor_role'] == "1" ? "checked='checked'" : "" ."/>Instructor</li>"; 
     $result .= "</ul>"; 
    $s++; 
    } 
+0

пожалуйста, напишите синтаксическую ошибку здесь –

+0

@BhavikShah Добавлена ​​ошибка –

+0

@BhavikShah исправлена ​​ошибка синтаксиса, но все еще не получают результаты –

ответ

1

Обновлено: Что такое $ значение2? вы использовали $ value в своем предложении foreach.

также изменить

$contact_role = $value2['contact_role'] == "checked" 

к

$contact_role = $value['contact_role'] == "1" 

и снова проверить

Также для HTML перепутались:

$result=""; 
$strChecked=""; 
foreach ($results as $value){ 
     $result .= "<ul>"; 
     if ($value2['contact_role'] == "1") 
      $strChecked = "checked='checked'"; 

     $result .= "<li><input id='person_contact' name='person_contact' type='checkbox'". $strChecked ." />Concact</li>"; 
     $result .= "<li><input id='person_instructor' name='person_instructor' type='checkbox'". $strChecked ."/>Instructor</li>"; 
     $result .= "</ul>"; 
} 
+0

Хорошо, теперь работающий, но html отображается неуместно с помощью эха '

  • Concact
  • "; ' –

    +0

    Вы изменили значение $ value2 на значение $? – Mehdi

    0

    Во-первых, я думаю, что у вас есть проблемы с $ value2 - не должен быть просто $ value?

    Во-вторых, если вы не указали атрибут «значение» во входном флажке, он будет возвращать «Вкл.» Во время получения/отправки, если он установлен, и не будет возвращать значение, если он не установлен. Попробуйте добавить значение = «1» к своему флажку, а затем проверите значение против «1».

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