28.03.2017, 18:01
|
Аспирант
|
|
Регистрация: 17.06.2014
Сообщений: 56
|
|
передача большого количества переменных из PHP в JS
уважаемые комрады, помогите новичку (с JS у меня слабо).
При изминении в форме поля "num_contr" обновляет зависимое поле.
рабочий кусок кода в JS:
$(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);
});
});
});
в ajax_all.php
.... echo $row['pr1p'];
выводит результат одного запроса из мускула и бросает его в поле с id pr1.
Ну;но, так же при изминении поля "num_contr", выводить результат php-запроса в мускул только на более 200 переменных и подставлять их в соответствующие id форми.
для наглядности id соостветствуют переменным, следующим образом (id - переменная): pr1 - pr1p, pr2 - pr2p, pr3- pr3p, ...
ps: не пойму как вывести значения множества переменных из отдельного php-обработчика в функцию для подстановки значений по id поля формы, при изменении одного поля, не утяжеляя"велосипедами" код.
|
|
28.03.2017, 18:56
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Ничего не понятно, единственное, что можно сказать, это следующим образом (id - переменная): pr1 - pr1p, pr2 - pr2p, pr3- pr3p - для того чтобы связать поля формы с идентификаторами записей в базе, не требуется pr1 - pr1p, pr2 - pr2p, pr3- pr3p и прочего подобного, вообще никаких ID полям формы задавать не надо.
|
|
28.03.2017, 19:00
|
Аспирант
|
|
Регистрация: 17.06.2014
Сообщений: 56
|
|
Сообщение от laimas
|
Ничего не понятно, единственное, что можно сказать, это следующим образом (id - переменная): pr1 - pr1p, pr2 - pr2p, pr3- pr3p - для того чтобы связать поля формы с идентификаторами записей в базе, не требуется pr1 - pr1p, pr2 - pr2p, pr3- pr3p и прочего подобного, вообще никаких ID полям формы задавать не надо.
|
мне их нужно привязывать так как форма со временем будет изменять, так проще редактировать, но если даже и привязывать по IS нет смысла, то как ??
|
|
28.03.2017, 19:02
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от dasser
|
мне их нужно привязывать так как форма со временем будет изменять, так проще редактировать
|
К чему привязать? Причем туи изменения формы и привязка с СУБД? То есть по вашему геморрой именований pr1 - pr1p, pr2 - pr2p, pr3- pr3p да еще в свете "изменяться", это удобно?
|
|
28.03.2017, 19:08
|
Аспирант
|
|
Регистрация: 17.06.2014
Сообщений: 56
|
|
Сообщение от laimas
|
К чему привязать? Причем туи изменения формы и привязка с СУБД? То есть по вашему геморрой именований pr1 - pr1p, pr2 - pr2p, pr3- pr3p да еще в свете "изменяться", это удобно?
|
хорошо, а как без привязки? если полей, в которые предпологаеться вставка данных мускульного запроса больше 200?
Может я и придумываю велосипед, из того что умею, по-этому у вас тут и прошу помощи
|
|
28.03.2017, 19:18
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от dasser
|
хорошо, а как без привязки?
|
А почему "привязать", это обязательно задать ID полю, причем какое-то дикое, типа pr1p? Вы думаете о том как серверу потом разбираться с этой требухой?
Поля формы есть коллекция элементов и JS вполне может получить эту коллекцию для работы с ней и ID для этого совсем не нужны. А вот если среди коллекции нужно индивидуально обратиться к одному элементу, тогда и полезен будет ID у такого поля.
Форма отправляется как имя поля (ключ) = значение. Что вам мешает связать имена полей с идентификаторами из базы?
name="record[234]"
name="record[1203]"
где цифры, это ключи записей в СУБД. В зависимости от метода передачи формы сервер получит GET/POST массив record, в котором ключи, это идентификаторы записей в базе, а значения, значения полей ее, которые редактировались.
|
|
28.03.2017, 19:32
|
Аспирант
|
|
Регистрация: 17.06.2014
Сообщений: 56
|
|
Сообщение от laimas
|
Что вам мешает связать имена полей с идентификаторами из базы?
|
собственно у меня так и есть.
Сообщение от laimas
|
Вы думаете о том как серверу потом разбираться с этой требухой?
|
пользоваться этим буду только я, и никакой другой пользователь, чем особо нагрузка не будет заметна в общем потоке.
разницы в имени поля и ID (который нужен для вставки (как я понимаю) путем выполнения JS) тоже нет ?
ну а по сути, каким образом можно решить эту сложную задачу в виде примера?
|
|
28.03.2017, 19:41
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от dasser
|
разницы в имени поля и ID (который нужен для вставки (как я понимаю) путем выполнения JS) тоже нет ?
|
Зачем вам id у полей формы?
Чтобы понять о какой задаче речь, нужно видеть форму (часть ее) с пояснением задачи.
|
|
28.03.2017, 19:50
|
Аспирант
|
|
Регистрация: 17.06.2014
Сообщений: 56
|
|
вот кусок
<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false">
<input name="num_contr" type="text" size="150" id="num_contr" required>
<!-- ... -->
<table class="research">
<tbody>
<tr class="accordion">
<td colspan="3" class="vt">ВТ</td>
</tr>
<tr><td class="corr">....</td><td><input / type="Text" name= "prpvt" id="prpvt"></td></tr>
<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>
<!-- ... -->
</tbody>
</table>
<input class="adscom" name="button" id="start" type="button" value='генерить' onclick="doLoad(document.getElementById('addcom'))">
</form>
и кусок
$(document).ready(function()
{
$('input[type=text]:text').change(function (){
$.post("ajax_all.php", { "num_contr" : $('input[type=text]').val()},
function(data){
var details = $("#prpvt").val(data);
});
});
});
и массив из обработчика (ajax_all.php):
$data = array(
'pdrpvt' => $row['pdrpvt'],
'rzrpvt' => $row['rzrpvt'],
'drpvt' => $row['drpvt'],
'ppvt' => $row['ppvt'],
'dkt' => $row['dkt']
);
echo json_encode($data);
Последний раз редактировалось dasser, 28.03.2017 в 20:41.
Причина: уточнение (дополнение)
|
|
28.03.2017, 20:04
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
И что за задача?
|
|
|
|