Обновление фото по onChange select'а

kolyazdv

Новичок
Обновление фото по onChange select'а

Добрый день!

столкнулся с проблемкой... незнаю как к ней подойти.

есть select.... и по событию onChange нужно обновить фотку в зависимости от того что выбранно...


т. е.
<select name="seltower" class=submit3 onChange="window.document.raschot.seltowerk.value = 1; den();" style="width: 100%">

<option value="322 grn - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White&&15218">
322 грн - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White</option>
<option value="297 grn - ASUS Vento TA668 + Delta GPS-400AB 350W ATX Case Black/Orange&&18366">
297 грн - ASUS Vento TA668 + Delta GPS-400AB 350W ATX Case Black/Orange</option>

</select>


и вот то что после && (например, 18366) - это код, с которым связано адрес рисунка - http://site.ru/pictures/18366s.jpg

должен обновиться

подскажите как энто можно сделать...
 

kode

never knows best
lurk js indexof && substr

-~{}~ 20.08.08 16:06:

доброта

Код:
function getCode(){

var selected = seltower.option[seltower.selectedIndex];
return selected.value.substr(selected.indexOf("&&")+2);

}
 

kolyazdv

Новичок
Вопрос чучуть не в этом.... а в том как по разным ID selecta'a (а соответственно рисунок в имеет разный урл)
обновить потом рисунок не перезагружая страницу?

по onChange ?
 

kolyazdv

Новичок
Помогите... чего-то не работает.... :(

есть функции
function den()
function getCode()

есть форма с селектом
<form name="raschot" method="post" action="http://...">

<select name="seltower" class=submit3 onChange="den();" style="width: 100%">

<option value="322 grn - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White&&15218">
322 грн - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White</option>
<option value="297 grn - ASUS Vento TA668 + Delta GPS-400AB 350W ATX Case Black/Orange&&18366">
297 грн - ASUS Vento TA668 + Delta GPS-400AB 350W ATX Case Black/Orange</option>
</select>

куда нада поставить эту строку что б картинка обновлялася по onChange?

img.src = "http://site.ru/pictures/"+getCode()+"s.jpg";

просто если ставлю в den() ИЕ говорит что не знает что такое имг.... если ставлю в
window.document.raschot.img.src = "http://site.ru/pictures/"+getCode()+"s.jpg";
(рисунок в форме)
то говорит что window.document.raschot.img - то говорит, что не явл объктом либо = null

скажите как правильно сделать
 

kode

never knows best
OH SHI~
где у тебя элемент который фотку отображает?...
 

kolyazdv

Новичок
<form name="raschot" method="post" action="http://,,,">
<table width="100%" >
<tr>
<td align="center">
<img src="http://...../pictures/10258s.jpg" border=0>

</td></tr>
......
....
<select>
....
...
</form>

Автор оригинала: est-in

img = document.getElementById('my_image_id');
как my_image_id получить?
 

AmdY

Пью пиво
Команда форума
должно быть что-то вроде этого,
берёшь картинку по айдишнику и присаиваешь src
this.value - выбранное значение
this.value.lastIndexOf('&') - последний &, вот только я не уверенкакую точно он позицию возвращает, вроде нуна +1 делать, проверишь сам.
PHP:
onChange=" document.getElementById('my_image_id').src = 'http://site.ru/pictures/' + this.value.substring(this.value.lastIndexOf('&')+1 ,0) + 's.jpg' "
 

kode

never knows best
this.value.substring(this.value.lastIndexOf('&')+1 ,0)

вернёт 0 символов - второй параметр это длинна :)
 

AmdY

Пью пиво
Команда форума
а ещё говорят в рнр с названиями бордак,
второй пареметр длина у substr, а у substring индексы от и до, если 0, то длина слова
хотя может всёже проверить, но так влом
 

kolyazdv

Новичок
после &&
<option value="297 grn - ASUS Vento TA668 + Delta GPS-400AB 350W ATX Case Black/Orange&&18366">

5-ть цыфр.... только цыфры....

this.value.substring(this.value.lastIndexOf('&')+1 ,0) ничего не возвращает :((

послушал kode... поставил "5" тоже не работает....
this.value.substring(this.value.lastIndexOf('&')+1 ,5)

как получить длину?


и еще вопрос:

если рисунка по указанному пути не существует(как выполнить проверку?)
вывести например рисунок, который нах по адрессу http://site.ru/pictures/no_image.gif
 

est-in

Новичок
>послушал kode... поставил "5" тоже не работает...

слушай лучше мануал...

PHP:
<option value="[I][COLOR=teal]322 grn - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White&&[/COLOR][/I][B]15218[/B] ">
322 грн - ASUS Vento TA652 + Delta GPS-400AB 350W ATX Case Black/White</option>
То что выделено курсивом какую играет роль в твоем приложении?

Проверять наличие картинки надо на этапе формирования этих самых option.
 

kolyazdv

Новичок
это для вывода пользователю...

хотя можно выкинуть все кроме
322 - цена (должна стоять на первом месте)
(разделитель)
15218 - код товара(к коду товара привязана картинка)
 

est-in

Новичок
а что тогда заключено в тэге option?
Тоже самое и для тех же целей, или нет?
Для чего в value должна быть цена?
 

kolyazdv

Новичок
в оптион - то что он выбирает... но value обрабатывает функция подсчета цен...(проверяет число Math.ceil(parseFloat(window.document.raschot.selproc.value)*parseFloat(window.document.raschot.selprock.value)/1);) ну и т д.
(есть 30 селектов)
обрабатывается яваскриптом...
+ нада добавить обновление картинки....
 

est-in

Новичок
1. value="price;code"

2. При формировании страници содавать в js такой массив:

PHP:
var options = new Array(optionsCount);
options[0] = {
        price: 322,
        code: 12352,
        img: True
};
...
Используешь AJAX?

P.S. вместо обращений по имени элемента (window.document.raschot.selproc.value) рекомендуется работать с элементами по Id (getElementById())
 

kolyazdv

Новичок
вообще пишу на PHP

но получилося так что нужно без перезагруска странички сделать подсчет...
вывести картинки того что пользователь выбрал... ну и т д...

тут без js никак не обойтися.... а у меня знаний по нему =0.00001 :((

гугл почти молчит так как тут любой елемент может иметь почти одинаковые методы... да и такое творит что ..... :(

насчет

var options = new Array(optionsCount);
options[0] = {
price: 322,
code: 12352,
img: True
};

как синтаксически правильно наполнять такой масив и как с ним тогда работать?


Пока сделал так
onChange="document.getElementById('my_image_id').src = 'http://....../pictures/' + this.value.substring(this.value.lastIndexOf('&')+1 ,this.value.length) + 's.jpg';"

но проблемка с товарами у которых нету фото осталася...
 

kode

never knows best
Автор оригинала: kolyazdv
onChange="document.getElementById('my_image_id').src = 'http://almaz.zp.ua/admin/pictures/' + this.value.substr(this.value.lastIndexOf('&')+1) + 's.jpg';"
fix

алсо такие вещи лучше выносить в отдельную функцию
 
Сверху