Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   изменение скрипта из формы (https://javascript.ru/forum/misc/64530-izmenenie-skripta-iz-formy.html)

warren buffet 18.08.2016 12:07

Это мировоззрение. ТС вбил в свою голову какую-то химерическую доктрину и не может сообразить теперь, что ломится в открытую дверь.

Ну есть у тебя 100 опций и надо из них выбрать. Ну так выбери, а чтобы снова не выбирать каждый раз - сохрани результат выборки в списке под каким-то именем, получится вроде конфигурации.

Более того, если заранее известны те или иные конфигурации, то составление списков сводится к рисованию дерева в объекте с массивами.

var config={
  
  simple_work: ['foo.exe'],
  easy_work: ['foo.exe','bar.exe'],
  hard_work: ['foo.exe','bar.exe','baz.exe'],

};


Выводишь метки и вперде.

warren buffet 18.08.2016 12:09

Цитата:

Сообщение от discol
вопрос с радио кнопками

Я не видел ни одной радиокнопки в твоих кодах. В чем там затык с радивом?

warren buffet 18.08.2016 12:14

Жырнота тащемта. )))

Цитата:

Сообщение от discol
чтобы onclick на радио кнопках раньше не срабатывал

Щелчок будет срабатывать всегда, когда по кнопке щелкнут. Вопрос куда он пойдет. Если прямиком на отправку формы или какое-то исполнение, то придется задавать такие вот бредовые вопросы как в цитате, а если на формирование конфигурации, которая уже запускается по кнопке "Запустить", то все станет простым и понятным.

warren buffet 18.08.2016 12:17

И зелень.

Рендер опций по данных делается уже 100500 лет и мало у кого проблемы возникают. Открываешь конфигурацию, там массив или что угодно. Берешь массив или что угодно и рисуешь на форме соответствующие элементы, или обозначаешь соответствующие элементы как активные/выбранные в этой конфигурации.

Ну а как по-твоему работают на веб-страницах всякие там сортировки, режимы отображения, фильтры в конце-концов? Из адреса или кук или откуда угодно берутся данные и по этим данным все рендерится в соответствии с.

discol 18.08.2016 12:20

Кстати нашел не плохое решение по моему. Разберусь и вам помогу разобраться если что?
http://stackoverflow.com/questions/1...in-an-hta-file

laimas 18.08.2016 12:23

Цитата:

Сообщение от discol
Извините я огорчен и удивлен.

Не надоело еще читать бред пустослова?

Ответьте на вопрос - вам нужна автоматизация процесса, о чем вроде бы писалось в контексте пользователей ваших или же нужно выбрать отдельно, запуская каждый вручную?

warren buffet 18.08.2016 12:29

Цитата:

Сообщение от discol
WSH.run(pro1),1,true;
WSH.run(pro7),1,true;
WSH.run(pro9),1,true;
WSH.run(pro25),1,true;
WSH.run(pro33),1,true;

Во-первых тут прочти про run https://msdn.microsoft.com/en-us/lib...(v=vs.84).aspx

Во-вторых надо было сразу признаться, что ты минус 0 в программировании, без намеков на какие-то знания. Потому что бнопня в цитате, ну просто сама собой превращается в массив и цикл.

var config=['pro1','pro11','pro101','pro21','pro36','pro86',];

for(var i=0;i<config.length;i++)
     WSH.run(config[i]+'.cmd',1,true);


Вот в чем фишка, понял? )))

warren buffet 18.08.2016 12:33

Цитата:

Сообщение от warren buffet
var config

И тут у ТС самый затык. Откуда взять этот массив, или коллекцию он не знает, ибо вообще не знает про коллекции и массивы и циклы.

Ну так и возьми с формы, например form.elements - это вообще готовая коллекция, которую можно крутить в цикле как тот самый config.

PS С таким уровнем знаний о программировании в соединении с упертостью, ТС будет рисовать свою АСУ ТП до морковкиного заговения. ))) На SO он нашел валидацию формы, которая ему может быть подскажет, что надо работать с коллекциями, а не с кучей отдельно взятых переменных.

laimas 18.08.2016 12:37

Цитата:

Сообщение от warren buffet
Во-вторых надо было сразу признаться, что ты минус 0 в программировании


А ты что плюс? :lol: Что тупое.

warren buffet 18.08.2016 12:49

laimas, ты же все понял, ну так нарисуй человеку форму с конфигами в списке и 101 штукой чекбоксов с лейблами. Или рони будем ждать? )))

laimas 18.08.2016 12:59

Цитата:

Сообщение от warren buffet
ну так нарисуй человеку форму с конфигами в списке

А какого хрена тогда ты тут срач развел? Не знаешь, значит заткнулся и пошел мимо.

warren buffet 18.08.2016 13:00

Со своей стороны я могу только ТЗ расширить.

В окне приложения должны быть:

Список конфигов в рамочке и три кнопки поблизости: "Новый", "Сохранить" и "Удалить"

Под списком должно быть 101 штука далматинцев чекбоксов с метками обозначающими соответствующий cmd файл.

Под блоком чекбоксов должна быть кнопка "Работать".

Логика.

После запуска приложения:

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

в блоке чекбоксов должны быть очекрыжены те из них, которые перечислены в выбранном конфиге или ни одного.

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

В процессе пользования.

Если конфиг выбран автоматически и он совпадает с желанием юзера, юзер сразу же жмет кнопку Работать.

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

Юзер может отредактировать выбранный конфиг путем перетыкания чекбоксов и нажатием кнопки Сохранить.

Юзер может удалить целиком выбранный конфиг нажатием кнопки Удалить.

Юзер может создать новый конфиг путем нажатия кнопки Новый и ввода имени конфига в появившееся диалоговое окно.

Юзер может не сохранять выбранную конфигурацию чекбоксов, а просто отчекрыжить нужные/ненужные и нажать Работать.

warren buffet 18.08.2016 13:02

Цитата:

Сообщение от laimas
А какого хрена тогда ты тут срач развел?

Специально для стимулирования тебя, но, похоже, у тебя кишка тонка нарисовать такую форму и снабдить ее скриптом. )))

warren buffet 18.08.2016 13:05

Добавка к ТЗ. Генеральный список чекбоксов (файлов) создается в административной части программы, то есть в другом окне, где слева окно с папками и файлами, а справа список выбранных файлов из папок и этот список должен быть сортиробабельным.

laimas 18.08.2016 13:09

Цитата:

Сообщение от warren buffet
Специально для стимулирования тебя

Я хорошо знаю данный материал, я не знаю чего все таки хочет автор поста, но твой бред мне нахрен не нужен, засунь себе в задницу свое ТЗ. Не нужно здесь никакой формы, идиот.

warren buffet 18.08.2016 13:38

Это у тебя форма умнег, а у меня окно. См ТЗ и пиши приложение товарищу.

discol 18.08.2016 18:06

В продолжении темы. Будьте гуманистами. Я вроде как почти решил задачу, - но правда устал. Помогите с последним нюансом.
Передаю значение value в скрипт.

<select id="prog1">
  <option  id="prog1" value="">Не выбрано</option>
  <option  id="prog1" value="file\\file\\goo1.cmd">выбрано</option>
</select>


<script language="JScript">
function run() {
WSH = new ActiveXObject("WScript.Shell");
var prog1;
prog1 = document.getElementById('prog1').value ;
WSH.run(prog1),1,true;
}
</script>

<input type="button" onclick="run()" />



Но если value пустое, не выбранное в первом случае, то скрипт выдает ошибку.
Проще простого должно быть для вас. Как сделать что окно с ошибкой не выскакивало если value="".

warren buffet 18.08.2016 18:20

Господи, за что такая кара.

WSH.run(prog1),1,true; - это не вопиет лишь потому, что в js так можно перечислять декларации и присвоения и выполнения через запятую. Хватит уже позориться, исправь.

Что касается валуе, то проверяй на пусто.

if(prog1 = document.getElementById('prog1').value)
   WSH.run(prog1,1,true);
else
  alert("Are u moron or not?");

warren buffet 18.08.2016 18:22

%$#@&%$ц, ты зачем набил id во все, что шевелится? ))) Програмист блин из Хацапетовки.

Убери id из всех option, оставь только в select. Все будет работать как обычно.

Кстати, это может быть решением, если ты сделаешь select multiple. Тогда в силекте можно будет выбрать больше чем одну опцию.

discol 18.08.2016 18:39

Блин хватит умничать! Я js впервые только этой ночью залез. Раньше только готовыми пользовался.
Мне надо чтобы не каких окон не выскакивало не алертов не ошибок.
Мне нужна тихая установка, просто с открытым окном cmd. Это же не единственный процесс. к run() через выборку я запущу 30 - 100 процессов.
Мне нужно только гладкое тихое исполнение сценария. Все. Помогите убрать окно ошибки.
Не удается найти указанный файл
код ошибки 0

warren buffet 18.08.2016 18:41

Цитата:

Сообщение от discol
Блин хватит умничать!

Ты забыл кто тут сенсей? )))

Зацени

<!DOCTYPE html>
<html lang="ru" dir="ltr">
<head>
<meta charset="utf-8">

<script>

var

selected=[],

run=function(){

	var list=document.getElementById('prog1');
	
	for(var i=0; i <list.length; i++)
		if(list[i].selected && list[i].value)
			selected.push(list[i].value);
  
	document.getElementById('log').innerHTML='<ul><li>'+selected.join('</li><li>')+'</li></ul>';
	selected=[];
  
};


</script>

</head>
<body>

<select id="prog1" multiple="multiple" size="20" style="width:200px;">
  <option  value="">Выберите из списка</option>
  <option  value="file\\file\\goo1.cmd">goo1</option>
  <option  value="file\\file\\goo11.cmd">goo11</option>
  <option  value="file\\file\\goo21.cmd">goo21</option>
  <option  value="file\\file\\goo31.cmd">goo31</option>
  <option  value="file\\file\\goo12.cmd">goo12</option>
  <option  value="file\\file\\goo13.cmd">goo13</option>
  <option  value="file\\file\\goo19.cmd">goo19</option>
  <option  value="file\\file\\goo101.cmd">goo101</option>
  <option  value="file\\file\\goo15.cmd">goo15</option>
  <option  value="file\\file\\goo41.cmd">goo41</option>
</select>
<br/>
<input type="button" value="RUN" onclick="run();"/>
<hr/>
<div id="log"></div>

</body>
</html>

warren buffet 18.08.2016 18:43

Цитата:

Сообщение от discol
не выскакивало не алертов

Ну сотри алерт, или ты только вчера ночью впервые с Клавой познакомился?

discol 18.08.2016 18:47

id у option убрал, но ошибка осталась.

discol 18.08.2016 18:47

id у option убрал, но ошибка осталась.

discol 18.08.2016 18:53

[quote=warren buffet;426016]Ты забыл кто тут сенсей? )))

Зацени


Клевый скрипт, но честно мне это не надо. Девочки же будут тыкать пальчиками. А им сто пудов больше радио подойдет. на крайняк опции:dance:

warren buffet 18.08.2016 18:53

Ладно, с бутылочки тебя буду кормить.

if(prog1 = document.getElementById('prog1').value)
   WSH.run(prog1,1,true);


и станет тихо.

warren buffet 18.08.2016 18:55

Нет, чтобы было тихо стопудово, сделай так

try{
    if(prog1 = document.getElementById('prog1').value)
       WSH.run(prog1,1,true);
}catch(e){};


и тогда пофигу и на валуе и на файлы, на все.

discol 18.08.2016 19:01

ну вот помогла точка с запятой после else, хотя мне кажется это не совсем правильно. Но ошибка перестала выскакивать. Если кто-то поделился более щедрыми идеями - было бы прекрасно! на всяк пож. Спасибо!

warren buffet 18.08.2016 19:05

Цитата:

Сообщение от discol
помогла точка с запятой после else

Ты переплюнул DivMan'а который удалял объект в бесконечном цикле с рекурсией, чтобы удалить так с корнем, как раковую опухоль вырезать со всеми прилегающими тканями. )))

То есть допереть стереть ще и else не смог.

discol 18.08.2016 19:05

Цитата:

Сообщение от warren buffet (Сообщение 426024)
Нет, чтобы было тихо стопудово, сделай так

try{
    if(prog1 = document.getElementById('prog1').value)
       WSH.run(prog1,1,true);
}catch(e){};


и тогда пофигу и на валуе и на файлы, на все.

А вот это реально красиво. Благодарю безмерно. Чистое удовольствие!
Если что говорил не хорошее "каюсь|.

warren buffet 18.08.2016 19:08

Тут я начал понимать рони. Некоторым клиентам лучше ничего не объяснять и вариантов не подкидывать - на тех-поддержке потом разоришься. )))


Часовой пояс GMT +3, время: 15:22.