proudmore
@proudmore

Почему не получается присвоить DOM элементу контент?

Хочу динамически создавать элемент DOM. Данные получаю из PHP:
var select = document.createElement('SELECT');
		select.innerHTML="
		<?php
		$cities = get_cities();
		echo '<select>';
		foreach ($cities as $row){
				echo "<option value='$row[0]'>$row[1]</option>\n";
		}
		echo '</select>';
		?>"
		document.body.appendChild(select);

И вот, что на выходе.
var select = document.createElement('SELECT');
	select.innerHTML="
		<select><option value='1'>Москва</option>
<option value='2'>Санкт-Петербург</option>
<option value='3'>Новосибирск</option>
<option value='4'>Екатеринбург</option>
<option value='5'>Нижний Новгород</option>
<option value='6'>Казань</option>
<option value='7'>Челябинск</option>
<option value='8'>Омск</option>
<option value='9'>Самара</option>
<option value='10'>Ростов-на-Дону</option>
<option value='11'>Уфа</option>
<option value='12'>Красноярск</option>
<option value='13'>Пермь</option>
<option value='14'>Воронеж</option>
<option value='15'>Волгоград</option>
<option value='16'>Краснодар</option>
<option value='17'>Саратов</option>
<option value='18'>Тюмень</option>
<option value='19'>Тольятти</option>
<option value='20'>Ижевск</option>
<option value='21'>Барнаул</option>
<option value='22'>Иркутск</option>
<option value='23'>Ульяновск</option>
<option value='24'>Хабаровск</option>
<option value='25'>Ярославль</option>
<option value='26'>Махачкала</option>
<option value='27'>Томск</option>
<option value='28'>Оренбург</option>
<option value='29'>Кемерово</option>
<option value='30'>Новокузнецк</option>
<option value='31'>Рязань</option>
<option value='32'>Астрахань</option>
<option value='33'>Набережные Челны</option>
<option value='34'>Пенза</option>
<option value='35'>Липецк</option>
<option value='36'>Киров</option>
<option value='37'>Тула</option>
<option value='38'>Чебоксары</option>
<option value='39'>Калининград</option>
<option value='40'>Курск</option>
<option value='41'>Улан-Удэ</option>
</select>"
		document.body.appendChild(select);

Ошибка Uncaught SyntaxError: Invalid or unexpected token с select.innerHTML="

Как исправить?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
trushka
@trushka
В вашем случае лучше doccument.body.innerHTML+="ваш PHP код"
А в строке в javaScript надо экранировать переводы строк, иначе интерпритатор ругается. То есть в PHP должно быть
<?php
    $cities = get_cities();
    echo '<select>';
    foreach ($cities as $row){
        echo "<option value='$row[0]'>$row[1]</option>\\\n";
    }
    echo '</select>';
    ?>"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dom1n1k
@dom1n1k
Зачем внутри элемента select совать еще одну пару тэгов select?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы