2014-10-14 2 views
0

Я пытаюсь выяснить ошибку на моей странице просмотра для моего флажка Анализировать ошибку: синтаксическая ошибку, неожиданный «если» (T_IF)ошибочный массив по списку пользователей флажку

Я не уверен, о том, что такое ошибка и как ее исправить.

foreach ($user->result() as $row) { 

echo '<tbody>'; 
echo '<tr>'; 
echo '<td class="text-center">' . if (in_array($row->user_id, $selected)) { .'</td>'; 
echo '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id, 'checked' => 'checked')) .'</td>'; 
echo } else {; 
echo '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id)) .'</td>'; 
echo }; 
echo '<td class="text-center">' . $row->user_id .'</td>'; 
echo '<td class="text-center" style="font-weight: bolder;">' . $row->username .'</td>'; 
echo '<td class="text-center">' . ($row->status ? $this->lang->line('text_enabled') : $this->lang->line('text_disabled')) .'</td>'; 
echo '<td class="text-center">' . $row->date_added .'</td>'; 
echo '<td class="text-center">' . anchor("admin/users/edit/" . $row->user_id, '<div class="btn btn-primary text-right" role="button"><i class="fa fa-pencil"></i> 
Edit</div>') .'</td>'; 
echo '</tr>'; 
echo '</tbody>'; 

} 
+0

У меня есть это echo} else {; 5 line down –

+1

Вы не можете комбинировать 'if()' с операцией конкатенации '.'. – BenM

+0

Почему вы должны быть внутри td? –

ответ

0

Поскольку вы используете if() внутри конкатенации, вам необходимо реорганизовать:

foreach ($user->result() as $row) 
{ 
    echo '<tbody>'; 
     echo '<tr>'; 

     if (in_array($row->user_id, $selected)) 
     { 
      echo '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id, 'checked' => 'checked')) .'</td>'; 
     } 
     else 
     { 
      echo '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id)) .'</td>'; 
     } 

     echo '<td class="text-center">' . $row->user_id .'</td>'; 
     echo '<td class="text-center" style="font-weight: bolder;">' . $row->username .'</td>'; 
     echo '<td class="text-center">' . ($row->status ? $this->lang->line('text_enabled') : $this->lang->line('text_disabled')) .'</td>'; 
     echo '<td class="text-center">' . $row->date_added .'</td>'; 
     echo '<td class="text-center">' . anchor("admin/users/edit/" . $row->user_id, '<div class="btn btn-primary text-right" role="button"><i class="fa fa-pencil"></i> Edit</div>') .'</td>'; 
     echo '</tr>'; 
    echo '</tbody>'; 
} 
0

Более или менее вы должны лучше следовать этому подходу. Вы не можете конкатенировать, если утверждения в echo/print.

foreach ($user->result() as $row) { 
$out = '<tbody>'; 
$out .= '<tr>'; 
$out .= '<td class="text-center">'; 
$out .='</td>'; 
if (in_array($row->user_id, $selected)) {  
    $out .= '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id, 'checked' => 'checked')) .'</td>'; 
} 
else { 
    $out .= '<td class="text-center">' . form_checkbox(array('name' => 'selected[]', 'value' => $row->user_id)) .'</td>'; 
} 
$out .= '<td class="text-center">' . $row->user_id .'</td>'; 
$out .= '<td class="text-center" style="font-weight: bolder;">' . $row->username .'</td>'; 
$out .= '<td class="text-center">' . ($row->status ? $this->lang->line('text_enabled') : $this->lang->line('text_disabled')) .'</td>'; 
$out .= '<td class="text-center">' . $row->date_added .'</td>'; 
$out .= '<td class="text-center">' . anchor("admin/users/edit/" . $row->user_id, '<div class="btn btn-primary text-right" role="button"><i class="fa fa-pencil"></i> 
Edit</div>') .'</td>'; 
$out .= '</tr>'; 
$out .= '</tbody>'; 
} 

echo $out; 
+0

FWIW, это приведет к недействительной разметке. – BenM

+0

Да, спасибо за определение. У меня есть kep $ out. = ''; в условии if, которое должно быть вне этого. – Dharam