[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление элементов в форму
gagger
Есть вот такой код:

    var items=1;
function AddItem() {
div=document.getElementById("route");
//div=document.getElementById("hours_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
проблема должна быть не с 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
Огромное спасибо, maxims. Я на джава слабоват, только на пхп соображаю.

Еще если возможно подскажи почему может возникать такой баг - при нажатии на селекты или на поле ввода оно сразу не становится активным, нужно несколько раз по нему нажать или подержать нажатым левый клик.
maxims
так во всех браузерах?

может навешано событие онфокус...

какие-нибудь js-фреймворки подключаются к странице?
gagger
В том то и дело, что никаких фреймворков и онфокуса нет, проверял только в мозилле.
maxims
скинь исходный текст страницы который сервер присылает.
Michael
Цитата
на 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
Цитата
нет. Делается так:

про такой способ не знал... )))
gagger
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
gagger - а позволь узнать, что за хрень ты написал? В коде JS есть строка, в которой находится код ПХП... И ты хочешь, чтобы это всё заработало в таком виде???

Во-первых, забудь про ПХП. Его у клиента нету.
Во-вторых, если тебе надо создать новый элемент, то используй полностью средства JS, т.к. только он доступен у клиента.

Либо... Это код, который находится в ПХП-скрипте? Но тогда ты его показываешь неправильно.

Короче говоря, определись сначала, где у тебя код находится, а потом будем думать, что делать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
gagger
sergeiss, это отлично работает в таком виде, в котором я написал, я конкретно задал вопрос о баге моргания выпадающего селекта, если не можешь ответить на данный вопрос не отвечай.
TMake
Цитата (gagger @ 19.11.2011 - 11:50)
это отлично работает в таком виде

Мы не против что оно отлично работает в таком виде, но для того что бы было легче определиться ты показывай исходник тот который у тебя браузер обрабатывает
sergeiss
Цитата (gagger @ 19.11.2011 - 11:50)
если не можешь ответить на данный вопрос не отвечай.

Тут понимаешь, в чем "прикол"... Я вижу, да и не только я, код JS со вставками от ПХП. Т.е. либо это вырезано из ПХП, где ты формируешь JS, либо это вырезано из JS, где ты пытаешься вставить ПХП.

Если это первый вариант, т.е. это ПХП код, то тогда покажи его более полно. Если же это второй вариант, т.е. ты пытаешься вставить ПХП в JS, то это работать не будет. И твои слова "Ошибка в правильности встройки пхп кода...", сказанные в самом начале, больше заставляют думать о втором варианте. Т.е. о неправильном, нерабочем.

Что же касается
Цитата (gagger @ 19.11.2011 - 11:50)
вопрос о баге моргания выпадающего селекта

то об этом даже не было вопроса изначально smile.gif Что за баг такой?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
gagger
sergeiss, почитай внимательней обсуждение выше и увидишь о чем пост)
Еще раз и внимательно)
Код который написан работает, есть ЕДИНСТВЕННАЯ проблема - селекты не становятся сразу активными.
bodja
Кавычечки,кавычечки,
расставляем верно кавычечки.

    var items=1;
function AddItem() {
div=document.getElementById("route");
//div=document.getElementById("hours_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);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.