Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 14.04.2016, 13:28
Интересующийся
Отправить личное сообщение для Sylar V Посмотреть профиль Найти все сообщения от Sylar V
 
Регистрация: 31.03.2015
Сообщений: 27

Dilettante_Pro,
У меня в верстке:
<form>
    <div>
        <div>
            <input type="text" class="function1" name="Диаметр" value="1">
            <input type="text" class="function2" name="Масса" value="2">
            <input type="text" class="function3" name="Размер" value="3">
            <input type="text" class="function4" name="Материал" value="4">
            <input type="text" class="function5" name="Цвет" value="5">
        </div>
    </div>
</form>

В итоге приходит только первый инпут без name. Форму в форме делать нельзя, сверстать иначе тоже.
Ответить с цитированием
  #32 (permalink)  
Старый 14.04.2016, 13:45
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Sylar V,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

   <script>
       $(function () {
           var a = {};
           $("form").serializeArray().map(function (x) { a[x.name] = x.value; }); 
           alert(JSON.stringify(a))
       });
  </script>
</head>

<body>
<form>
    <div>
        <div>
            <input type="text" class="function1" name="Диаметр" value="1">
            <input type="text" class="function2" name="Масса" value="2">
            <input type="text" class="function3" name="Размер" value="3">
            <input type="text" class="function4" name="Материал" value="4">
            <input type="text" class="function5" name="Цвет" value="5">
        </div>
    </div>
</form>
</body>
</html>
Ответить с цитированием
  #33 (permalink)  
Старый 14.04.2016, 14:01
Интересующийся
Отправить личное сообщение для Sylar V Посмотреть профиль Найти все сообщения от Sylar V
 
Регистрация: 31.03.2015
Сообщений: 27

<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 
   <script>
       $(function () {
           var a = {};
           $("form").serializeArray().map(function (x) { a[x.name] = x.value; });
           alert(JSON.stringify(a))
       });
  </script>
</head>
 
<body>
<form>
    <div>
        <div>
            <input type="text" class="diametr" name="Диаметр" value="123">
            <input type="text" class="massa" name="Масса" value="123">
            <input type="text" class="razmer" name="Размер" value="123">
            <input type="text" class="material" name="Материал" value="123">
            <input type="text" class="cvet" name="Цвет" value="123">
        </div>
    </div>
</form>
</body>
</html>


Вставил в JS:
var a = {};
	$("form").serializeArray().map(function (x) { a[x.name] = x.value;
});

$.ajax({
	type: 'POST',
	url: '/order.php?t=' + new Date().getTime(),
	dataType: 'json',
	data: {
		TOVAR: a
});


В CRM приходит только диаметр, без name.
Понимаю, что тут работает. На почту зато приходят все данные, тоже без name.
Уже не знаю, что делать.

Последний раз редактировалось Sylar V, 15.04.2016 в 04:57.
Ответить с цитированием
  #34 (permalink)  
Старый 15.04.2016, 04:49
Интересующийся
Отправить личное сообщение для Sylar V Посмотреть профиль Найти все сообщения от Sylar V
 
Регистрация: 31.03.2015
Сообщений: 27

Dilettante_Pro,
Код работает. Данные теряются у меня. Нельзя ли сделать form индивидуальной? А то у меня в коде таких конструкций много. Странно то, что вот этот код работает без проблем:

<!DOCTYPE html>
 
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 
  <script>
 
    $(function() {
        var a = ["Диаметр","Масса","Размер"].reduce(function(b, a, c) {
            b[a] = document.querySelector([".diametr",".massa",".razmer"][c]).value;
            return b
        }, {});
        alert(JSON.stringify(a))
    })
 
  </script>
</head>
 
<body>
<input type="text" class="diametr"  value="1">
<input type="text" class="massa"  value="2">
<input type="text" class="razmer"  value="3">
</body>
</html>

Может как-то можно его увеличить еще на два значения?

Последний раз редактировалось Sylar V, 15.04.2016 в 05:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 блока "отрыть полностью" polepropilen Элементы интерфейса 7 22.06.2018 23:53
Как на клиентском JavaScript создать некий текст и сохранить mmotor Элементы интерфейса 35 10.09.2015 23:06
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06