letehaha
@letehaha
Вникаю вo front-end

Какая ошибка в коде?

Есть вот такой код:
foreach ($employee as $value) {
		echo '	<div class="new-form" data-employee-id="'.$value['id_employee'].'">
					<input type="text" disabled value="'.$value['first_name'].'">
					<input type="text" disabled value="'.$value['second_name'].'">
					<input type="text" disabled value="'.$value['middle_name'].'">
					<select name="list-position" id="list-position">';
					foreach ($positions as $val) {
						echo '<option value="'.$val['id_position'].'">'.$val['position'].'</option>';
					}'</select>
					<input type="text" disabled value="'.$value['position'].'">
					<input type="text" disabled value="'.$value['salary'].'">
					<button class="change-employee" data-id="'.$id.'">Изменить</button>
					<button id="js-save-change-employee" class="save-change-employee hide" data-id="'.$id.'">Сохранить изменения</button>
				</div>';
	}


После этого участка вообще ничего не выводится на страницу. Т.е. вывело всё что было перед селектом + сам селект, а вот после селекта DOM абсолютно пустой, хотя должны быть ещё два поля и две кнопки.
'<select name="list-position" id="list-position">';
	foreach ($positions as $val) {
		echo '<option value="'.$val['id_position'].'">'.$val['position'].'</option>';
	}'</select>

Никаких ошибок на странице нету, не знаю в чем проблема. Подскажите :)
P.S.: если нужен весь код, могу залить куда-то.

UPDATE: я подозреваю, что это из-за ; в конце вот этой строки
'<select name="list-position" id="list-position">';
. Но без ; в этом месте выводится вот такая ошибка
Parse error: syntax error, unexpected 'foreach' (T_FOREACH), expecting ',' or ';' in .....
  • Вопрос задан
  • 380 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега PHP
frontend developer
foreach ($employee as $value) {
    echo '	<div class="new-form" data-employee-id="'.$value['id_employee'].'">
          <input type="text" disabled value="'.$value['first_name'].'">
          <input type="text" disabled value="'.$value['second_name'].'">
          <input type="text" disabled value="'.$value['middle_name'].'">
          <select name="list-position" id="list-position">';
          foreach ($positions as $val) {
            echo '<option value="'.$val['id_position'].'">'.$val['position'].'</option>';
          }
// echo забыл
echo '</select>
          <input type="text" disabled value="'.$value['position'].'">
          <input type="text" disabled value="'.$value['salary'].'">
          <button class="change-employee" data-id="'.$id.'">Изменить</button>
          <button id="js-save-change-employee" class="save-change-employee hide" data-id="'.$id.'">Сохранить изменения</button>
        </div>';
  }


Но нафига так писать??? Можно же красиво всё оформить и не ломать глаза

<?php foreach ($employee as $value) { ?>
    <div class="new-form" data-employee-id="<?= $value['id_employee'] ?>">
        <input type="text" disabled value="<?= $value['first_name'] ?>">
        <input type="text" disabled value="<?= $value['second_name'] ?>">
        <input type="text" disabled value="<?= $value['middle_name'] ?>">
        
        <select name="list-position" id="list-position">';
            <?php foreach ($positions as $val) { ?>
                <option value="<?= $val['id_position'] ?>"><?= $val['position'] ?></option>
            <?php } ?>
        </select>
        
        <input type="text" disabled value="<?= $value['position'] ?>">
        <input type="text" disabled value="<?= $value['salary'] ?>">
        <button class="change-employee" data-id="<?= $id ?>">Изменить</button>
        <button id="js-save-change-employee" class="save-change-employee hide" data-id="<?= $id ?>">Сохранить изменения</button>
    </div>
<?php } ?>


ЗЫ. Местная подсветка, конечно, убивает всю прелесть, но редакторы нормально подсвечивают.
Ответ написан
bemdev
@bemdev
foreach ($employee as $value) {
    echo '	<div class="new-form" data-employee-id="'.$value['id_employee'].'">
          <input type="text" disabled value="'.$value['first_name'].'">
          <input type="text" disabled value="'.$value['second_name'].'">
          <input type="text" disabled value="'.$value['middle_name'].'">
          <select name="list-position" id="list-position">';
    
          foreach ($positions as $val) {
            echo '<option value="'.$val['id_position'].'">'.$val['position'].'</option>';
          }
    
    echo '</select>
          <input type="text" disabled value="'.$value['position'].'">
          <input type="text" disabled value="'.$value['salary'].'">
          <button class="change-employee" data-id="'.$id.'">Изменить</button>
          <button id="js-save-change-employee" class="save-change-employee hide" data-id="'.$id.'">Сохранить изменения</button>
        </div>';
  }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы