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 28.03.2017 22:58

не только форум но и сайт моего хостера :( странная реакция. вроде как сервер упал, но потом все возобновилось (довольно быстро), как будтно ддос

laimas 28.03.2017 23:01

Эта операция

$data = array(
'pdrpvt' => $row['pdrpvt'],
'rzrpvt' => $row['rzrpvt'],
'drpvt' => $row['drpvt'],
'ppvt' => $row['ppvt'],
'dkt' => $row['dkt']

никчемная, так как фактически вы заново указываете уже существующие ключи. То есть, если запрос возвращает одну строку, то сразу отдаем массив (а результат запроса, это массив) как JSON (естественно проверив возвращено ли что-то запросом):

echo json_encode(mysql_fetch_assoc($result));

На клиенте это будет объект (нет в JS ассоциативных массивов), в котором ключи переданного массива будут его свойствами. В цикле $.each ключ массива (k) присваивается имени поля формы, а значение (v) его значению.

dasser 28.03.2017 23:08

Цитата:

Сообщение от laimas (Сообщение 448778)
Эта операция никчемная, так как фактически вы заново указываете уже существующие ключи. То есть, если запрос возвращает одну строку, то сразу отдаем массив

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

dasser 29.03.2017 09:34

laimas, попробовал, и что получилось:
форма осталась не тронутая (т.е. те поля в которых ожидалась вставка - пустые), но после формы появились новые поля типа - <input name="pdrpvt" value="1">, данные выводяться с названиями и значениями соответственно правильно.
Но нужно чтобы заполнялись существующие поля формы, а не формировались новые.

laimas 29.03.2017 12:03

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

Селектор своей формы надо было...

var f = $(this).closest('form'); $('#addcom');

laimas 29.03.2017 12:13

Цитата:

Сообщение от dasser
нужно чтобы заполнялись существующие поля формы, а не формировались новые.

Это как понять?

dasser 29.03.2017 12:18

laimas, попробовал, то же самое - создает новые inputы.
прочитал в докум-ции - Метод .append() вставляет указанное содержимое как ПОСЛЕДНИЙ элемент в каждом из элементов коллекции jQuery.
возможно нужно каким то образом уточнить именно подстановку в существующие поля?

dasser 29.03.2017 12:24

Цитата:

Сообщение от laimas (Сообщение 448817)
Это как понять?

было:
<tr><td>....</td><td><input / type="Text" name= "pdrpvt" id="pdrpvt"></td></tr>
                    <tr><td class="corr">....</td><td><input / type="Text" name= "rzrpvt" id="rzrpvt"></td></tr>
                    <tr><td>....</td><td><input / type="Text" name= "drpvt" id="drpvt"></td></tr>
                    <tr><td class="corr">....</td><td><input / type="Text" name= "ppvt" id="ppvt"></td></tr>
                    <tr><td class="corr">....</td><td><input / type="Text" name= "dkt" id="dkt"></td></tr>

после изминения
<input name="num_contr" type="text" size="150" id="num_contr" required>

внизу добавилось
<input id="prpvt" value="1">
<input id="pdrpvt" value="">
<input id="rzrpvt" value="">
...

laimas 29.03.2017 12:25

Все правильно, этот метод добавляет указанные элементы в указанное.

А вы хотите заменять пришедшим существующее, то есть у вас в форме уже есть поля? А они откуда взялись?

Я вас просил описать словами конкретно задачу - что, зачем, почему. Этого не было сделано, ну а я не фокусник.

Если надо замещать существующие поля, значит нужно имеющиеся в форме поля удалять при вставке новых, то есть вот так:

var f = $('#addcom').empty();

dasser 29.03.2017 12:34

Цитата:

Сообщение от laimas (Сообщение 448822)
Все правильно, этот метод добавляет указанные элементы в указанное.

А вы хотите заменять пришедшим существующее, то есть у вас в форме уже есть поля? А они откуда взялись?

Я вас просил описать словами конкретно задачу - что, зачем, почему. Этого не было сделано, ну а я не фокусник.

Если надо замещать существующие поля, значит нужно имеющиеся в форме поля удалять при вставке новых, то есть вот так:

var f = $('#addcom').empty();

я не однократно писал что форма и поля уже существуют, и (в дополнении) значения их после изменения одного поля, нужно подставлять данные из массива пришедшего от обработчика.
Цитата:

каждую переменную вывести в уже готовые поля формы


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