gagger
17.11.2011 - 19:31
Есть вот такой код:
var items=1;
function AddItem() {
div=document.getElementById("route");
button=document.getElementById("add");
items++;
newroute="<input type=\"text\" name=\"route" + items;
newroute+="\">";
newroute+="<span class=\"st2\">
<select name=\"hours_route\">
<?php for ($i=0; $i <= 23; $i++) {
echo '<option>'.$i.'</option>';
}?>
</select>";
newnode=document.createElement("span");
newnode.innerHTML=newroute;
div.insertBefore(newnode,button);
}
Ошибка в правильности встройки пхп кода, подскажите пожалуйста - как правильно это сделать?
maxims
17.11.2011 - 20:04
проблема должна быть не с PHP....
ты пишешь
newroute+="<span class=\"st2\">
<select name=\"hours_route\">
<?php for ($i=0; $i <= 23; $i++) {
echo '<option>'.$i.'</option>';
}?>
</select>";
на
php такое присваивание строки проканает, типа
$str = "бла-бла-бла
бла-бла
бла";
на js нужно писать всё в одну строку либо склеивать строки...
например так
var $str = "бла-бла-блаn\n\rбла-бла\n\rбла";
или так
var $str = "бла-бла-бла"+
"бла-бла"+
"бла";
gagger
17.11.2011 - 20:23
Огромное спасибо, maxims. Я на джава слабоват, только на пхп соображаю.
Еще если возможно подскажи почему может возникать такой баг - при нажатии на селекты или на поле ввода оно сразу не становится активным, нужно несколько раз по нему нажать или подержать нажатым левый клик.
maxims
18.11.2011 - 05:20
так во всех браузерах?
может навешано событие онфокус...
какие-нибудь js-фреймворки подключаются к странице?
gagger
18.11.2011 - 09:40
В том то и дело, что никаких фреймворков и онфокуса нет, проверял только в мозилле.
maxims
18.11.2011 - 09:58
скинь исходный текст страницы который сервер присылает.
Michael
18.11.2011 - 10:18
Цитата |
на js нужно писать всё в одну строку либо склеивать строки... |
нет. Делается так:
var gety =
' 123\
456\
789';
alert(gety);
Вообще по вопросу - очень не хорошо мешать js код и
php код. Вот пойми что у тебя там. На
php инициализируй нужные данные в js-переменные. В js скрипте этими переменными пользуйся. Для вопросов по js надо предоставлять исходный код страницы в браузере.
_____________
There never was a struggle in the soul of a good man that was not hard
maxims
18.11.2011 - 10:22
Цитата |
нет. Делается так: |
про такой способ не знал... )))
gagger
18.11.2011 - 15:46
maxims, Так а причем тут сервер, это происходит до отправки при работе с формой. Сам код проблемного элемента:
function AddItem() {
div=document.getElementById("route");
button=document.getElementById("add");
items++;
newroute="<input type=\"text\" name=\"route[]\">";
newroute+=" <span class=\"st2\"><select name=\"hoursRoute[]\">";
newroute+="<?php for ($i=0; $i <= 23; $i++) { echo "<option>".$i."</option>";}?></select>";
newroute+=" <select name=\"minutesRoute[]\">";
newroute+=" <?php for ($i=0; $i <= 59; $i++) {echo "<option>".$i."</option>"; }?></select></span>";
newnode=document.createElement("span");
newnode.innerHTML=newroute;
div.insertBefore(newnode,button);
}
sergeiss
18.11.2011 - 16:08
gagger - а позволь узнать, что за хрень ты написал? В коде JS есть строка, в которой находится код ПХП... И ты хочешь, чтобы это всё заработало в таком виде???
Во-первых, забудь про ПХП. Его у клиента нету.
Во-вторых, если тебе надо создать новый элемент, то используй полностью средства JS, т.к. только он доступен у клиента.
Либо... Это код, который находится в ПХП-скрипте? Но тогда ты его показываешь неправильно.
Короче говоря, определись сначала, где у тебя код находится, а потом будем думать, что делать.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
gagger
19.11.2011 - 11:50
sergeiss, это отлично работает в таком виде, в котором я написал, я конкретно задал вопрос о баге моргания выпадающего селекта, если не можешь ответить на данный вопрос не отвечай.
Цитата (gagger @ 19.11.2011 - 11:50) |
это отлично работает в таком виде |
Мы не против что оно отлично работает в таком виде, но для того что бы было легче определиться ты показывай исходник тот который у тебя браузер обрабатывает
sergeiss
19.11.2011 - 12:05
Цитата (gagger @ 19.11.2011 - 11:50) |
если не можешь ответить на данный вопрос не отвечай. |
Тут понимаешь, в чем "прикол"... Я вижу, да и не только я, код JS со вставками от ПХП. Т.е. либо это вырезано из ПХП, где ты формируешь JS, либо это вырезано из JS, где ты пытаешься вставить ПХП.
Если это первый вариант, т.е. это ПХП код, то тогда покажи его более полно. Если же это второй вариант, т.е. ты пытаешься вставить ПХП в JS, то это работать не будет. И твои слова "Ошибка в правильности встройки пхп кода...", сказанные в самом начале, больше заставляют думать о втором варианте. Т.е. о неправильном, нерабочем.
Что же касается
Цитата (gagger @ 19.11.2011 - 11:50) |
вопрос о баге моргания выпадающего селекта |
то об этом даже не было вопроса изначально

Что за баг такой?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
gagger
19.11.2011 - 13:10
sergeiss, почитай внимательней обсуждение выше и увидишь о чем пост)
Еще раз и внимательно)
Код который написан работает, есть ЕДИНСТВЕННАЯ проблема - селекты не становятся сразу активными.
Кавычечки,кавычечки,
расставляем верно кавычечки.
var items=1;
function AddItem() {
div=document.getElementById("route");
button=document.getElementById("add");
items++;
newroute='<input type="text" name="route'+items+'"/>';
newroute+='<span class="st2"><select name="hours_route">';
<?php for ($i=0; $i <= 23; $i++) {
echo '<option>'.$i.'</option>';
}?>
newroute+='</select>';
newnode=document.createElement("span");
newnode.innerHTML=newroute;
div.insertBefore(newnode,button);
}
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.