Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сгенерировать тект из поля (https://javascript.ru/forum/misc/65930-sgenerirovat-tekt-iz-polya.html)

karakym 16.11.2016 11:59

Сгенерировать тект из поля
 
Доброго времени суток.
Есть 2 поля textarea и одна кнопка button
<textarea></textarea>
<textarea></textarea>
<button>Сгенерировать</button>

Есть шаблон подстановки
Код:

INSERT INTO `category` ( `parentid`, `posi`, `name`, `alt_name`) VALUES ('$num1', '$num2', '$name1', '$name2');
В первое поле вставляется текст типа: 0|1|BMW|bmw
По нажатию кнопки нужно вставить во второе поле шаблон с подставленными значениями, где разделитель значений "|"
При этом разделитель строк \n (перенос).
Подскажите как реализовать?

ksa 16.11.2016 13:26

Цитата:

Сообщение от karakym
как реализовать?

Как вариант...

var str='0|1|BMW|bmw';
alert(str.replace(/\|/g,'\n'));

karakym 16.11.2016 14:08

<!DOCTYPE html>
<html >
<head>
  <meta charset="UTF-8">
  <title>SQL Code Category Generator</title>
  <link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<textarea class="front" placeholder="Одна категория на одну строку">1|2|QWE|qwe
1|2|ASD|asd
1|2|ZXC|zxc</textarea>
<textarea class="result" placeholder="Здесь будет результат"></textarea>
<button>GENRATE</button>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script>
    $('button').click(function(){
        var list = $(".front").val().split("\n");
        for (var i = 0, ln = list.length; i < ln; ++i)
          var separ = list[i].split("|");
          for (var i = 0, ln = separ.length; i < ln; ++i)
          $(".result").val("INSERT INTO `category` ( `parentid`, `posi`, `name`, `alt_name`) VALUES ('"+separ[0]+"', '"+separ[1]+"', '"+separ[2]+"', '"+separ[3]+"');");
    });
  </script>
</body>
</html>

Чет не полностью вышло.
Только последнюю строку выводит, а должен все, построчно.

ksa 16.11.2016 14:20

Цитата:

Сообщение от karakym
Чет не полностью вышло.

А ты, что из этого
Цитата:

Сообщение от karakym
<textarea class="front" placeholder="Одна категория на одну строку">1|2|QWE|qwe
1|2|ASD|asd
1|2|ZXC|zxc</textarea>

собираешься получить?

karakym 16.11.2016 14:21

<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<title>SQL Code Category Generator</title>
<style>
@import url('https://fonts.googleapis.com/css?family=Cuprum');
body {background: rgb(204,204,204);font-family: 'Cuprum', sans-serif;margin:0;padding:0;}
textarea {font-size: 100%;padding: 0;font-family: 'Cuprum', sans-serif;box-sizing: border-box;text-align: center;border: 0px;border-right: 1px solid #AAA;border-bottom: 1px solid #AAA;width: 50%;height: 90%;position: absolute;resize: none;transition: 0.5s;}
textarea:last-child {border-right: 0px;}
textarea:focus, button:focus {outline: none;}
textarea:hover {background: #EEE;}
button {width: 100%;height: 10%;position: absolute;font-family: 'Cuprum', sans-serif;border: 0px;font-size: 40px;bottom: 0;background: #EEE;}
.front {left:0;}
.result {right:0;}
</style></head><body>
<textarea class="front" placeholder="Одна категория на одну строку">1|2|QWE|qwe
1|2|ASD|asd
1|2|ZXC|zxc</textarea>
<textarea class="result" placeholder="Здесь будет результат"></textarea>
<button>GENRATE</button>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
    $('button').click(function(){
        var list = $(".front").val().split("\n");
        for (var i = 0, ln = list.length; i < ln; ++i)
          var separ = list[i].split("|");
          for (var i = 0, ln = separ.length; i < ln; ++i)
          $(".result").append("INSERT INTO `dle_category` ( `parentid`, `posi`, `name`, `alt_name`) VALUES ('"+separ[0]+"', '"+separ[1]+"', '"+separ[2]+"', '"+separ[3]+"');\n");
    });
</script></body></html>

karakym 16.11.2016 14:26

Цитата:

Сообщение от ksa (Сообщение 435180)
А ты, что из этого... ...собираешься получить?

Из этого:
Код:

0|1|QWE|qwe
0|2|ASD|asd
1|1|ZXC|zxc

Собираюсь получить это:
Код:

INSERT INTO `category` (`parentid`,`posi`,`name`,`alt_name`) VALUES ('0', '1', 'QWE', 'qwe');
INSERT INTO `category` (`parentid`,`posi`,`name`,`alt_name`) VALUES ('0', '2', 'ASD', 'asd');
INSERT INTO `category` (`parentid`,`posi`,`name`,`alt_name`) VALUES ('1', '1', 'ZXC', 'zxc');


ksa 16.11.2016 14:48

Цитата:

Сообщение от karakym
Собираюсь получить это

Вона че!
Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
textarea {
	width: 90%;
	height: 200px;
}
</style>
<script type='text/javascript'>
$(function(){
	$('button').click(function(){
		var str = $("#front").val();
		var reg=/(\d+)\|(\d+)\|(\S+)\|(\S+)/g;
		str=str.replace(reg,"INSERT INTO `category` ( `parentid`, `posi`, `name`, `alt_name`) VALUES ('$1', '$2', '$3', '$4');");
		$("#result").val(str);
	});
});
</script>
</head>
<body>
<textarea id="front" placeholder="Одна категория на одну строку">1|2|QWE|qwe
1|2|ASD|asd
1|2|ZXC|zxc</textarea>
<textarea id="result" placeholder="Здесь будет результат"></textarea>
<button>GENRATE</button>
</body>
</html>

karakym 16.11.2016 14:55

Цитата:

Сообщение от ksa
Как вариант...

То что нужно! Спасибо.
З.Ы. Какая разница использования class или id в твоем коде?
Я по классах выбираю элементы, при этом я знаю, что на этой страницы дубликатов не будет. А ты ставишь id, почему?

ksa 16.11.2016 14:58

Цитата:

Сообщение от karakym
Какая разница использования class или id в твоем коде?

ИД для уникальных значений... Классы для целых групп однотипных элементов...

Цитата:

Сообщение от karakym
Я по классах выбираю элементы, при этом я знаю, что на этой страницы дубликатов не будет. А ты ставишь id, почему?

Если нет дубликатов, зачем классы? :)

"Классовая" выборка подразумевает целый массив таких элементов... Выборка по ИД показывает уникальность выбора.

laimas 16.11.2016 15:02

Цитата:

Сообщение от karakym
$(".result").val("INSERT INTO `category` ( `parentid`, `posi`, `name`, `alt_name`) VALUES ('"+separ[0]+"', '"+separ[1]+"', '"+separ[2]+"', '"+separ[3]+"');");

И потом это скармиливается серверу и выполняется на нем?


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