Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по Javascript
 
 автор: Atom   (23.08.2005 в 13:03)   письмо автору
 
 

Есть меню select

<select name="currency" class="i">
<option value="rub" selected>rub
<option value="eur">euro
<option value="usd">usd
</select>

В нем пользователь выбирает валюту, в которой отображать объявления.
И есть поле для указания промежутка цены, в который оно должно попадать.
от <input type="text" name="price_from"> до <input type="text" name="price_to">
И рядом должна стоять валюта, которая берется из меню select.
Я это делаю функцией

<script language="javascript">
<!--
function currency()
{
   var cur = document.searchform.currency.value;
   if(cur == "rub") cur = "руб.";
   if(cur == "eur") cur = "&euro;"
   if(cur == "usd") cur = "$";
   document.write(cur);
}
//-->
</script>

Теперь вопрос. Как мне сделать, чтобы когда пользователь меняет валюту в меню select она так же менялась рядом с полем цены?

   
 
 автор: P@Sol   (23.08.2005 в 13:43)   письмо автору
 
   для: Atom   (23.08.2005 в 13:03)
 

простите, offtop: как давно появился символ &euro? он везде отображается?

   
 
 автор: Киналь   (23.08.2005 в 17:36)   письмо автору
 
   для: P@Sol   (23.08.2005 в 13:43)
 

По сабжу - думаю, можно по onChange отрезать последний символ в текстовой строке и добавлять нужный. Только как, не знаю=)

   
 
 автор: codexomega   (23.08.2005 в 17:40)   письмо автору
 
   для: Atom   (23.08.2005 в 13:03)
 

Сделайте так:

<select name="currency" class="i" onChange="showSelected(this)">

Теперь функция javascript:

function showSelected(selected_value){
var my_index = selected_value.selectedIndex;
var index_value= selected_value.options[my_index].value;
document.forms.searchform.price_from.value=index_value;
}

Всё.

   
 
 автор: Atom   (23.08.2005 в 18:43)   письмо автору
 
   для: codexomega   (23.08.2005 в 17:40)
 

Дело в том, что символ валюты должен стоять рядом с полем формы, а не в нем

   
 
 автор: codexomega   (23.08.2005 в 19:18)   письмо автору
 
   для: Atom   (23.08.2005 в 18:43)
 

Нет проблем.
Создайте еще один input text для символа и уберите бордюры.
Вот так:

<input type="text" name="symbol" style="border:none " value="my_symbol">

   
 
 автор: Atom   (23.08.2005 в 20:25)   письмо автору
 
   для: codexomega   (23.08.2005 в 19:18)
 

Спасибо! все работает.
И еще вопрос.
У меня там была перекодировка -

   if(cur == "rub") cur = "руб."; 
   if(cur == "eur") cur = "&euro;" 
   if(cur == "usd") cur = "$";

Я ее внедрил, но когда я выбираю euro, отображается не символ евро, а надпись &euro. Почему так?

   
 
 автор: Киналь   (23.08.2005 в 22:03)   письмо автору
 
   для: Atom   (23.08.2005 в 20:25)
 

Потому что символа евро нет на клавиатуре. равно как, например, буквы кси. Вам надо не input дополнительный. а div, еще лучше span; в него и подставлять значок валюты - все escape-последовательности обработаются правильно. Только не забудьте точку с запятой - иначе ИЕ не поймет.

   
 
 автор: codexomega   (23.08.2005 в 22:30)   письмо автору
 
   для: Киналь   (23.08.2005 в 22:03)
 

Со span и div согласен. Но как вы будете туда вставлять текст с одной только JavaScript.
Лучше всего добавить в страницу элементы того же PHP. Тогда можете делать всё что угодно.
<span><?php echo $symbol; ?></span>
Таким образом можно использовать и картинки и значки HTML типа &euro;

   
 
 автор: elenaki   (15.02.2006 в 16:14)   письмо автору
 
   для: Киналь   (23.08.2005 в 22:03)
 

>Потому что символа евро нет на клавиатуре. равно как,
>например, буквы кси.

почему Кси нет? у меня есть! :)

   
 
 автор: codexomega   (23.08.2005 в 22:13)   письмо автору
 
   для: Atom   (23.08.2005 в 20:25)
 

Дело в том что содержимое input text понимается как строка String.
А формат в этом случае не учитывается.
Единственное, что можно сделать, это заменить значок HTML &euro; тем же значком, изменив шрифт но это надо экспериментировать с WORD, Я в этих делах не мастер. Пишите просто euro. И просто и понятно для всех.

   
 
 автор: P@Sol   (05.09.2005 в 16:07)   письмо автору
 
   для: Atom   (23.08.2005 в 20:25)
 

&euro - виден до ie 6?

   
 
 автор: codexomega   (05.09.2005 в 16:21)   письмо автору
 
   для: P@Sol   (05.09.2005 в 16:07)
 

Да, этот значок виден начиная с версии 4.
И еще.
Кроме значка &euro, можно использовать и такой &#8364 .
Они идентичны.

   
 
 автор: P@Sol   (05.09.2005 в 16:58)   письмо автору
 
   для: codexomega   (05.09.2005 в 16:21)
 

странно, вроде евро появилось в 2002 году, а ie 4 в 1998

   
 
 автор: codexomega   (05.09.2005 в 17:37)   письмо автору
 
   для: P@Sol   (05.09.2005 в 16:58)
 

Да, но Microsoft потом выпустил патчи и апдэйты для Windows.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования