Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: input radio событие

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
LEONeso
Отправлено: 27 Февраля, 2011 - 21:21:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Здравствуйте, помогите улучшить скрипт.

есть скрипт:
CODE (javascript):
скопировать код в буфер обмена
  1. function img(srccode) {
  2.         if (document.imgcode.codetype[0].checked == true) {
  3.         document.imgcode.post.value = srccode;
  4.         document.imgcode.post.select();
  5.  
  6.         }if (document.imgcode.codetype[1].checked == true) {
  7.         document.imgcode.post.value ="<img src=\""+srccode+"\">";
  8.         document.imgcode.post.select();
  9.  
  10.         }
  11. }


есть форма:
CODE (html):
скопировать код в буфер обмена
  1. <form name="imgcode">
  2. <input name="post" size="100" value="кликни по картинке"></font><br>
  3.         <label><input name="codetype" type="radio" value="1">&nbsp;html</label>
  4.         <label><input name="codetype" type="radio" value="0" checked>&nbsp;url</label>
  5. </form>


есть изображение:
CODE (html):
скопировать код в буфер обмена
  1. <img src="/test/image/1.gif" alt="image" onmousedown="img(this.src);"


При нажатии на изображение генерируется код, в выбранном формате, в данном примере или УРЛ или ХТМЛ. Один недостаток - это при выборе другой "радио точки", требуется нажать повторно на изображение, чтобы с генерировалась новая строка, как сделать так, чтобы при нажатии на label код автоматически менялся, без повторного нажатия на изображение?


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 27 Февраля, 2011 - 21:35:49
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




А задачу можно написать?
 
 Top
LEONeso
Отправлено: 27 Февраля, 2011 - 21:45:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, я подчеркнул её синим цветом.

дублируем:
Цитата:
как сделать так, чтобы при нажатии на label код автоматически менялся, без повторного нажатия на изображение?


Процесс действий юзера и скрипта, описан там же.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 27 Февраля, 2011 - 22:00:12
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
А что по твоему код?
 
 Top
LEONeso
Отправлено: 27 Февраля, 2011 - 22:16:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, так код - это то что получается после работы скрипта, - это то что выводится в поле input text, - это url экранированная тегами или пустой url в зависимости от выполнения действий скрипта.


--
Все было бы легче, если создать html файл и воспользоваться, тем ,что я описал выше, ведь кликая, можно легче понять, чем смотреть на код.

Как еще объяснить, сжевать все до пошагового действия юзера и действий кода, взаимодействия юзера ,его мышки и html разметки?? Я просто сам уже не могу понять ,что еще надо написать... все же описано, просто попробовать надо и все станет понятно.

Я понял, что же надо! Чтоб стало понятно - это готовый html и видео!
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <script>
  3.       function img(srccode) {
  4.               if (document.imgcode.codetype[0].checked == true) {
  5.               document.imgcode.post.value = srccode;
  6.               document.imgcode.post.select();
  7.               }if (document.imgcode.codetype[1].checked == true) {
  8.               document.imgcode.post.value ="<img src=\""+srccode+"\">";
  9.               document.imgcode.post.select();
  10.               }
  11.       }
  12. </script>
  13.  
  14.  
  15.       <form name="imgcode">
  16.       <input name="post" size="100" value="кликни по картинке"></font><br>
  17.               <label><input name="codetype" type="radio" value="1">&nbsp;html</label>
  18.               <label><input name="codetype" type="radio" value="0" checked>&nbsp;url</label>
  19.       </form>
  20.  
  21. <img src="/test/image/1.gif" alt="image" onmousedown="img(this.src);">
  22. </html>


и видео, его работы: смотрим 350кб

Как видим, при нажатии на "радио точку" или же на сам label, с генерированный код не меняется в форме input txt, для этого требуется повторное нажатие на изображение.

Хотелось бы, чтобы при нажатии на label он сразу менялся (экранировался).

(Отредактировано автором: 27 Февраля, 2011 - 23:02:47)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 27 Февраля, 2011 - 22:31:38
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Я просто не вижу задачу целиком.
А для label нужно тогда установить событие и саму функцию
 
 Top
LEONeso
Отправлено: 27 Февраля, 2011 - 22:33:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, госпади, я бы не спрашивал, если знал бы сам ответа, мне нужна рабочая строка в скрипт. Чтоб затея с label и экранированием работала и не заставляла юзера тыкать повторно на изображение.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 27 Февраля, 2011 - 22:37:40
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
что за экранирование??
Напиши целиком всю процедуру которую ты хочешь увидеть
 
 Top
LEONeso
Отправлено: 27 Февраля, 2011 - 22:59:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, в скрипт вообще заглядывали?
Давайте начнем с того, что Вам не стало понятно, что же такое "экранирование" - заглянем в википедию (википедию, то знаем?)

теперь давайте взглянем на скрипт, где очень четко видно "экранирование" src (это ссылка изображения).
CODE (javascript):
скопировать код в буфер обмена
  1. "<img src=\""+srccode+"\">";

также можно сделать так
CODE (htmlphp):
скопировать код в буфер обмена
  1. "[image]"+srccode+"[/image]";

и так
CODE (javascript):
скопировать код в буфер обмена
  1. "[img]"+srccode+"[/img]";


От куда взялся src?
- а вот от сюда:
CODE (html):
скопировать код в буфер обмена
  1. <img src="/test/image/1.gif" alt="image" onmousedown="img(this.src);">


Что передает src?
- ссылку на изображение

Зачем передавать скрипту src?
- чтоб экранировать его и вывести в форму input type="text"

Что же нам надо от label?
- чтоб передаваемый ранее src, экранировался новыми тегами в зависимости от выбранного radio в label или же помеченного name="" самого label. Все зависиот от реализации данного функционала программистом, знающего JavaScript.

--[взаимодействие юзера и html разметки включая js]
user - тыкает на любой "радио"
html - отображает точку, на выбранном "радио" юзером.
user - тыкает по изображению
js - обрабатывает событие, отображая выбранный тип экранизации src в html форме input type="text"
user - вдруг пользователю захотелось кликнуть по другому любому "радио" (он же и label)
js - тут же, экстрасенсорными способностями, понимает, что пользователь хочет новую экранизацию ранее запрашиваемого src и в тот же момент экранирует src в html форме input type="text"
user - пользователя переклинуло и он решил кликнуть по другому изображению, но при этом он оставил "радио" на том же варианте экранирования, и нажимает по новому изображению.
js+html - совместным виртуальным разумом понимают, что пользователь просто так не отстанет от них и объединяет свои усилия во благо запросу пользователя, тем самым экранирует новый src ранее выбранным "радио".
user - пользователь в полном экстазе копирует ссылку и убегает на форум php.su вставлять картинку в свой топик!

КОНЕЦ!

* у меня отчаянье... скоро узнаю, что же там под стропилами.

(Отредактировано автором: 27 Февраля, 2011 - 23:22:58)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 28 Февраля, 2011 - 11:51:03
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
Вот не лень было расписывать столько хлама?)))
А хочешь кликать по label как по картинке и чтоб оно передавалось в функцию, я уже писал, что тебе нужно присоеденить событие к label , а в функцию можешь передавать копию того, что написано в src.
Если не ошибаюсь и правильно понял, тебе нужно нечто похожее на:


CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <script>
  3. var urlimg='';
  4. function img(srccode) {
  5. if(srccode==1){ srccode=urlimg; } else { urlimg=srccode; }
  6. if(srccode!=''){
  7. if (document.imgcode.codetype[0].checked == true) {
  8. document.imgcode.post.value = srccode;
  9. document.imgcode.post.select();
  10. }
  11. if (document.imgcode.codetype[1].checked == true) {
  12. document.imgcode.post.value ="<img src=\""+srccode+"\">";
  13. document.imgcode.post.select();
  14. }}}
  15. </script>
  16. <form name="imgcode">
  17. <input name="post" size="100" value="кликни по картинке"></font><br>
  18. <label onmousedown="img(1);"><input name="codetype" type="radio" value="1">&nbsp;html</label>
  19. <label onmousedown="img(1);"><input name="codetype" type="radio" value="0" checked>&nbsp;url</label>
  20. </form>
  21. <img src="/test/image/1.gif" alt="image" width="50" height="50" onmousedown="img(this.src);">
  22. <img src="/test/image/2.gif" alt="image" width="50" height="50" onmousedown="img(this.src);">
  23. </html>
 
 Top
LEONeso
Отправлено: 28 Февраля, 2011 - 12:29:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, это чудо Ангел это праздник Выпьем! это работает Ламер !
Спасибо Подмигивание .
Правда я применил onclick="img(1);" в место onmousedown="img(1);" - это прибавило точности в работе (а то требовалось еще раз нажать на label, чтоб экранировался) и добавил к форме input onfocus="this.select();" - это повышает юзабельность, минус одно лишнее действие (выделение строки)

(Отредактировано автором: 28 Февраля, 2011 - 12:37:27)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 28 Февраля, 2011 - 12:44:56
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
Вот так лучше сделай:

CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <script>
  3. var urlimg='';
  4. function img(srccode) {
  5. if(srccode==1){ srccode=urlimg; } else { urlimg=srccode; }
  6. if(srccode!=''){
  7. if (document.imgcode.codetype[1].checked == true) {
  8. document.imgcode.post.value = srccode;
  9. document.imgcode.post.select();
  10. } else {
  11. document.imgcode.post.value ="<img src=\""+srccode+"\">";
  12. document.imgcode.post.select();
  13. }}}
  14. </script>
  15. <form name="imgcode">
  16. <input name="post" size="100" value="кликни по картинке"></font><br>
  17. <label onClick="img(1);"><input name="codetype" type="radio" value="1">&nbsp;html</label>
  18. <label onClick="img(1);"><input name="codetype" type="radio" value="0" checked>&nbsp;url</label>
  19. </form>
  20. <img src="/test/image/1.gif" alt="image" width="50" height="50" onClick="img(this.src);">
  21. <img src="/test/image/2.gif" alt="image" width="50" height="50" onClick="img(this.src);">
  22. </html>
 
 Top
LEONeso
Отправлено: 28 Февраля, 2011 - 12:49:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, просто в данном примере я показал 2 условия js на деле там их 4 и может быть более. так что if-else тут не прокатит мб if-elseif, если оно поддерживается.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 28 Февраля, 2011 - 12:51:24
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
ну смотри, просто в данном случае не нужно, чтоб если сработало одно условие, срабатывало как-то другое, нужно избегать столкновений.
 
 Top
LEONeso
Отправлено: 28 Февраля, 2011 - 13:44:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ALEN, столкновений быть не может, ведь все зависит от value="0" и т.д.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB