Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   передача большого количества переменных из PHP в JS (https://javascript.ru/forum/dom-window/68146-peredacha-bolshogo-kolichestva-peremennykh-iz-php-v-js.html)

dasser 29.03.2017 12:38

laimas,
Цитата:

Сообщение от laimas (Сообщение 448822)
var f = $('#addcom').empty();

удаляет полностю поля формі и кнопку генерить, при єтом создавая новый inputы. а нужно (получается) очистить только сожержимое inputов формы и заменить их новыми данными

laimas 29.03.2017 13:06

Если честно, то просто офигеть... ) Данные то как то связываются.

Тогда так

$('input[type=text]:text').change(function (){
    $.post("ajax_all.php", { "num_contr" : this.value}, function(data){
        $.each($('#addcom input'), function() {
            this.value = data[this.name]
        })
    }, 'json');
});


Но с условием, что изначально в форме гарантированно есть поля с этими именами.

К тому же, в коллекцию '#addcom input' не должны попасть другие поля формы. Это можно обеспечить указав контекст, либо выборку по имени класса, либо взять срез и т.п. В общем все зависит от структуры формы.

dasser 29.03.2017 13:13

Цитата:

Сообщение от laimas (Сообщение 448827)
Но с условием, что изначально в форме гарантированно есть поля с этими именами.

К тому же, в коллекцию '#addcom input' не должны попасть другие поля формы. Это можно обеспечить указав контекст, либо выборку по имени класса, либо взять срез и т.п. В общем все зависит от структуры формы.

УРА, сработало! да, в коллекцию '#addcom input' попали и другие поля. а что значит ?
Цитата:

либо взять срез и т.п.

laimas 29.03.2017 13:18

Цитата:

Сообщение от dasser
а что значит ?

А это значит, что будет получена ошибка и не факт, что после этого будут выполняться скрипты.

Можно и проверять в цикле - если есть свойство в объекте data равное имени текущего поля, то меняем значение полю. Но если структура формы такова, что к примеру эти поля расположены в таблице, а другие нет, то можно получить только нужную коллекцию:

$.each($('#addcom table input'), function() {
.....

или по какому либо иному признаку.

dasser 29.03.2017 13:28

Цитата:

что будет получена ошибка и не факт, что после этого будут выполняться скрипты
ясно.
Цитата:

$.each($('#addcom table input'), function() {
прекрасно заработало, то что нужно! спасибо Вам большое!
ps: вот что значит когда не владеешь азами JS. а чтобы понимать как нужно реализовать задуманое, мало перелистать документацию и Гугл, нужна практика с аналогичными примерами.

laimas 29.03.2017 13:30

Среди возвращаемых сервером данных есть и поле идентификатора записи?

dasser 29.03.2017 13:34

Цитата:

Среди возвращаемых сервером данных есть и поле идентификатора записи?
да

laimas 29.03.2017 13:38

$('input[type=text]:text') - этот селектор будет работать, но он излишен, либо type, либо :tetx

$('input:text')

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

dasser 29.03.2017 13:44

Цитата:

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

laimas 29.03.2017 13:48

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


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