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:06

в данный момент у меня через форму, в которой есть больше 200 полей, при ищменении одного конкретного поля (num_contr) отправляется цифра (переменная) в ajax_all.php для запроса в базу, после чего выводится результат запроса (тоже одно значение, не массив) в ДРУГОЕ (pr1) поле формы.Но а мне нужно чтобы при изменении num_contr, после результата выполнения ajax_all.php которым будет массив даных
$data = array(
    'pdrpvt' => $row['pdrpvt'],
    'rzrpvt' => $row['rzrpvt'],
    'drpvt' => $row['drpvt'],
    'ppvt' => $row['ppvt'],
    'dkt' => $row['dkt']

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

dasser 28.03.2017 22:11

т.е. если сейчас при выполнении
$(document).ready(function() 
{ 
 $('input[type=text]:text').change(function (){
 $.post("ajax_all.php", { "num_contr" : $('input[type=text]').val()},

 function(data){
var	details = $("#pr1").val(data);
 });
});
   });

результат выводится в одно поле формы с id pr1, то как вывести результат массива в разные поля той же формы?

laimas 28.03.2017 22:26

Если сервер возвращает $data как JSON, то так:

$('input[type=text]:text').change(function (){
    var f = $(this).closest('form'); //предполагается, что форма уже на странице и источник запроса принадлежит ей
    $.post("ajax_all.php", { "num_contr" : this.value}, function(data){
        $.each(data, function(k, v) {
            f.append('<input name="'+k+'" value="'+v+'">')
        })
    }, 'json');
});

dasser 28.03.2017 22:33

$(document).ready(function() {
.. сначало не нужно ?

laimas 28.03.2017 22:34

Нужно конечно, просто я только основное написал, и так форум глючит, и чем больше кода вставляется тем больше глюков.

PS. То-есть, думаю сами поймете как вставить не просто поле формы, но и поместить его в ячейку таблицы.

dasser 28.03.2017 22:40

ага, а в ajax_all.php :
$js_obj = json_encode($arr);
print $js_obj;

?, где $arr - массив? приавильно ?

laimas 28.03.2017 22:42

Ну можно и проще:

exit(json_encode($arr));


зачем посредники, которые не нужны.

laimas 28.03.2017 22:50

Можно и проще, без не нужных посредников - echo json_encode($arr);
И вообще без формирования промежуточного массива $data, так как судя по коду это лишняя операция. То есть сразу echo json_encode(mysql_fetch_assoc($result));

laimas 28.03.2017 22:50

Кошмарит форум по полной.

dasser 28.03.2017 22:52

да, выполняеться. но куда выводит, не пойму - name="'+k+'" value="'+v+'


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