Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Копирование и текстовой формы html
SergДата: Среда, 26 Ноября 2014, 19:07 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Приветствую ;)

Имею html страницу:

Код

<form>
<input name="t1"  type="text" size="3" maxlength="3"><br/>  
<input name="t2" type="text" size="3" maxlength="3"><br/>  
<input name="t3" type="text" size="3" maxlength="3"><br/>  
<input name="t4" type="text" size="3" maxlength="3"><br/>  
<input name="t5" type="text" size="3" maxlength="3"><br/>  
<input name="t6" type="text" size="3" maxlength="3"><br/>  
<input name="t7" type="text" size="3" maxlength="3"><br/>  
<input name="t8" type="text" size="3" maxlength="3"><br/>  
<input name="tn..." type="text" size="3" maxlength="3"><br/>  
</form>


Необходимо:
1. Получить текст из всех этих форм нажав на кнопку в MMB
2.Получить текст из определённой формы нажав соответствующую кноп ку в MMB

Решение: ?


 
YURIYДата: Среда, 26 Ноября 2014, 22:03 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Serg ()
Решение:


JavaScript ;)



Вечная память Андрею Сергееву!
 
SergДата: Пятница, 28 Ноября 2014, 13:54 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Код
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
</head>
<SCRIPT LANGUAGE="javascript">
function checkscript() {var InputText = document.form1.t1.value + '';window.location.href='scriptcode1:Input$=\''+InputText+'\' %0D%0A LoadText(\"Text1\",\"Input$\") %0D%0A Refresh(\"\")';}
</SCRIPT>
<body>
<form onsubmit="checkscript()" name="form1">
<input type="text" name="t1" size="25"><br/>
<input type="text" name="t2" size="25"><br/>
</form>
</body>
</html>


Ага, а вот тут нужно подсказать мне:

Код
url$='как запустить эту функцию'
Browser("Browser","url$")


Добавлено (28 Ноября 2014, 13:37)
---------------------------------------------
Код

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
</head>
<body>
<form  name="form1">
<input type="text" name="t1" size="25"><br/>
<input type="text" name="t2" size="25"><br/>
</form>
</body>
</html>


Точнее в html то скрипта не будет

Добавлено (28 Ноября 2014, 13:54)
---------------------------------------------

Код
For i=1 To 10
   k$='text'+CHAR(i)
i$=CHAR(i)
url$='javascript:l=document.form1.t+i$+.value + '';window.location.href='scriptcode1:Input$=\''+InputText+'\' %0D%0A LoadText(\"+k$+\",\"Input$\")'
   Browser("Browser","url$")
Next i


Вот такой смысл, вот так мне надо




Сообщение отредактировал Serg - Пятница, 28 Ноября 2014, 13:38
 
YURIYДата: Пятница, 28 Ноября 2014, 17:58 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Если без JS внутри HTML получить значения полей формы из MMB, то вот примерно в таком духе:

Код
url$ = 'javascript:window.location.href="scriptcode1:LoadText(\"Text1\",\"" + document.form1.t1.value + "\")"'
Browser("Browser","url$")



Вечная память Андрею Сергееву!
 
SergДата: Пятница, 28 Ноября 2014, 18:50 | Сообщение # 5
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Отлично.

Вот только появляется scriptcode1:LoadText("Text1","попрорпопр")
Почему? Как убрать?

Добавлено (28 Ноября 2014, 18:50)
---------------------------------------------

Код
For i=1 To 2
   i$=CHAR(i)
   url$ = 'javascript:window.location.href="scriptcode1:LoadText(\"'+i$+'\",\"" + document.form1.t'+i$+'.value + "\")"'
   Browser("Browser","url$")
Next i


Выводится только вторая переменная (из второго текстового поля)


 
YURIYДата: Пятница, 28 Ноября 2014, 22:48 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Serg ()
Вот только появляется scriptcode1:LoadText("Text1","попрорпопр")
Почему? Как убрать?


Да, у меня тоже, но я пока не понял, как избавиться от этого... Проблема в том, что мы ведь делаем перенаправление. Однако, если делать его из JS на самой HTML-странице, то оно не происходит, как и должно быть. А в примере выше мы объединяем оба подхода и, похоже, MMB эту тему не контролирует... Боюсь, что без своего JS-кода на странице никак :( Нужно часть действий делать там.

Цитата Serg ()
Выводится только вторая переменная (из второго текстового поля)


Должна выводиться первая как раз :) После перенаправления формы ведь не будет на странице. Этот момент можно обойти, если собрать внутри JS-кода все значения полей, отдать их MMB, а уже в нём распарсить. Тогда MMB-цикл уйдёт.



Вечная память Андрею Сергееву!
 
SergДата: Суббота, 29 Ноября 2014, 12:03 | Сообщение # 7
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Как это будет выглядеть?
Пусть текст загружается в переменную t$[1..2..3..n]


 
YURIYДата: Суббота, 29 Ноября 2014, 18:08 | Сообщение # 8
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Serg ()
Как это будет выглядеть?


Собирай значения элементов с формы в цикле, типа так:

http://www.cyberforum.ru/javascript/thread165663.html

Собирай в строку с неким разделителем. В MMB распарсь, там есть специальная функция.

А вообще, опиши задачу полностью. Бывает, люди обрезают большую задачу до маленькой, где проблема, и решают её неверно или сложным путём. Вдруг у тебя на странице есть JQuery, а это и ещё упростит задачу. И так далее.



Вечная память Андрею Сергееву!
 
SergДата: Воскресенье, 30 Ноября 2014, 12:44 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
На html страницы будет много текстовых форм (некая таблица)
Нужно собрать все данные с текстовых форм в ммб, но чтобы запуск скрипта был из ммб.

Добавлено (30 Ноября 2014, 12:44)
---------------------------------------------
Конечно лучше если собрать все значения в одну переменную через разделитель


 
YURIYДата: Воскресенье, 30 Ноября 2014, 23:11 | Сообщение # 10
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Serg ()
На html страницы будет много текстовых форм (некая таблица)


Совсем не прибавил никаких деталей. Что за страница-то? Ты создаёшь, или со стороны грузишь?

Цитата Serg ()
Конечно лучше если собрать все значения в одну переменную через разделитель


Ну вот пробуй решение выше, оно поможет.



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 12:36 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Html страницу буду генерировать сам средствами ммб.

 
YURIYДата: Понедельник, 01 Декабря 2014, 17:08 | Сообщение # 12
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ну вот тем более отлично! Засунь туда JS-ку свою сразу и в ней всё делай! Я бы даже вставил на страницу JQuery - с ним с формы данные собираются одной командой.

И проблема с перенаправлением за счёт внутреннего js исчезнет. Тебе ведь оно не нужно.



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 17:15 | Сообщение # 13
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Мне бы желательно показать как это выглядит в коде. И как запустить скрипт из ммб.
Лучше один раз увидеть, как говорится.


 
YURIYДата: Понедельник, 01 Декабря 2014, 17:19 | Сообщение # 14
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ты выше привёл прекрасно работающие варианты, они тебе и подойдут. Вижу, что ты брал за основу примеры из справки. Там их два приводится, они отлично тебе подходят.

Касаемо jquery - если нет опыта, я тебе составлю код. Если вставишь jquery в проект.



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 17:24 | Сообщение # 15
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Цитата
Касаемо jquery - если нет опыта, я тебе составлю код. Если вставишь jquery в проект.

Буду весьма признателен.
Текст в переменную через разделитель "|"


 
YURIYДата: Понедельник, 01 Декабря 2014, 17:32 | Сообщение # 16
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Serg ()
Текст в переменную через разделитель "|"


Не нужно, выше ведь пишу об этом.

Накидай мне рабочий пример и приложи. Там должен быть html с нужной формой и соответствующие объекты MMB для вывода в них. Чтобы я не придумывал ничего.



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 17:45 | Сообщение # 17
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
www.iaropolch.ru/Пример.zip
(сюда отправить не удалось возникает ошибка)




Сообщение отредактировал Serg - Понедельник, 01 Декабря 2014, 17:45
 
YURIYДата: Понедельник, 01 Декабря 2014, 21:07 | Сообщение # 18
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ну я ж попросил текстовые объекты создать, а ты вбил себе в голову, что всё будет в одной переменной...

Вот тебе результат. Значит так, jquery не будем использовать, у тебя простая форма, не нужно.

В своём html, в блоке head, вставь такой код:

Код
<script type="text/javascript">
   function mmb() {
     var form = document.form1;
      
     var url = '';
     for (var i = 0; i < form.length; i++) {
       url += 'LoadText("Text' + (i + 1) + '","' + form[i].value + '")' + '%0D%0A';
     }
      
     window.location.href = 'scriptcode1:' + url;
   }
</script>


Имя формы я вынес в отдельную переменную, чтобы ты правил только один раз. Суть скрипта: собираем в одну строку команды LoadText на выгрузку со всех элементов формы в соответствующие текстовые объекты MMB и переадресовываем это в виде ссылки, где MMB уже подхватит и выполнит.

Запуск из MMB:

Код
url$ = 'javascript:mmb()'
Browser("Browser","url$")


С тебя "пиво" :)



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 21:29 | Сообщение # 19
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
С этим всё понял. Большое спасибо.
А всё же, как загнать текст в переменную с разделителем?? Так намного удобнее работать с текстом.


 
YURIYДата: Понедельник, 01 Декабря 2014, 21:44 | Сообщение # 20
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Можно так:

Код
<script>
   function mmb() {
     var form = document.form1;
      
     var vars = '';
     for (var i = 0; i < form.length; i++) {
       vars += form[i].name + '=' + form[i].value + '|';
     }
      
     window.location.href = 'scriptcode1:' + "vars$ = '" + vars + "'";
   }
</script>


Есть нюанс: сразу после вызова этой функции из MMB ты можешь не увидеть в переменной vars$ какой-либо результат, так как сначала должен выполниться window.location.href, это займёт какие-то доли секунды ожидания. Можно обойти вот так:

Код
url$ = 'javascript:mmb()'
Browser("Browser","url$")
Pause("50")
Message("vars$","")


Но это может быть не очень надёжно :( Если у тебя будет где-то отдельная обработка полученной с формы переменной, то есть, не сразу после получения, то всё ок.



Вечная память Андрею Сергееву!
 
SergДата: Понедельник, 01 Декабря 2014, 21:50 | Сообщение # 21
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Отлично. Спасибо.

 
Alex3AДата: Понедельник, 15 Декабря 2014, 01:24 | Сообщение # 22
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Цитата YURIY ()
Можно обойти вот так:

Ну все правильно, ммб такая хрень что нужно думать не только что делать но и когда.
Ну правда и не толька ммб, а практически все.
 
YURIYДата: Понедельник, 15 Декабря 2014, 01:30 | Сообщение # 23
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата Alex3A ()
Ну все правильно, ммб такая хрень


MMB в данном случае не виновата - задержка идёт от браузера, и просто нельзя сразу смотреть, что он прислал, когда это ещё не случилось.




Вечная память Андрею Сергееву!
 
raf-raf-rafДата: Четверг, 19 Мая 2016, 16:20 | Сообщение # 24
Новый участник
Группа: Пользователи
Сообщений: 1
Репутация: 0
Награды: 0
Статус: Offline
здравствуйте, я совсем новичок в mmbuilder, подскажите как сделать следующее:
сделать форму в mmbuilder в которой будет несколько полей ввода имени пользователя и поле ввода пароля, а ниже кнопка "выполнить вход" примерно так
имя пользователя пароль
имя пользователя пароль
имя пользователя пароль

выполнить вход

И при нажатии на кнопку происходит автоматический вход, ну к примеру в три социальные сети:
vk
одноклассники
facebook

но без открытия браузера, или чтобы он был hidden
Думаю удобно будет для оставления комментариев на сайтах требующих чтобы пользователь был авторизован в своем аккаунте в соцсетях. Таким образом не нужно будет постоянно вводить имя пользователя и пароль. Желательно чтобы они где-то записывались или сохранялись при самом первом вводе.
Как это возможно сделать (если вообще возможно), не поможете?
 
  • Страница 1 из 1
  • 1
Поиск: