Подтянуть данные из связанной таблицы
#1
Отправлено 03 Октябрь 2012 - 00:59
Например, выбираем клиента, в поле "Тел" записывается значение поля "Телефон" из таблицы клиенты (из выбранной строки).
Не вычислением при сохранении записи, а чтобы заполнилось при редактировании записи, как только выбрали значение в поле связи.
#2 Гость_Roman_*
Отправлено 03 Октябрь 2012 - 10:26
#3
Отправлено 03 Октябрь 2012 - 12:37
Тогда вопрос: при установке в поле связи пустого значения нужные поля все равно заполняются данными, подозреваю что данными из предыдущего значения... как сделать чтобы в такой ситуации "поля заполнения" просто очищались?
#4 Гость_Roman_*
Отправлено 03 Октябрь 2012 - 13:09
#6
Отправлено 03 Октябрь 2012 - 13:15
Например
$data['Тел'] = "12345"; $data['Адр'] = "улица"; echo $data; exit;
#7 Гость_Roman_*
Отправлено 03 Октябрь 2012 - 13:24
nk (03 Октябрь 2012 - 13:12) писал:
nk (03 Октябрь 2012 - 13:15) писал:
Например
$data['Тел'] = "12345"; $data['Адр'] = "улица"; echo $data; exit;
Эту часть javascript:
success: function(msg) { document.getElementById('value444').value = msg; }заменить на:
success: function(msg) { eval(msg); }
А в вывод доп. дейсвия должен быть такой (444 - ид поля "Телефон", 555 - ид поля "Адрес"):
$phone = "555-333-222"; $address = "Большая Улица"; echo "document.getElementById('value444').value = '$phone';"; echo "document.getElementById('value555').value = '$address';"; exit;
#8
Отправлено 03 Октябрь 2012 - 13:29
Например вместо $line['Телефон'] использовать что-то вроде $line['f123'] ну или типа того. При изменении имени поля приходится искать все его упоминания во всех вычислениях. Особенно это печально на начальных этапах внедрения, когда требования к системе меняются с каждый день.
#9 Гость_Roman_*
Отправлено 03 Октябрь 2012 - 13:38
#10
Отправлено 03 Октябрь 2012 - 14:19
#11
Отправлено 07 Октябрь 2012 - 17:21
$("#value112").bind("change", function() { customer_val = document.getElementById("value112").value; if (customer_val == "") { document.getElementById("value113").value = ""; document.getElementById("value114").value = ""; } else { $.ajax( { type: "POST", url: "user_button.php", data: { id: '4', line: '{$line_id}', customer_id: customer_val}, success: function(msg) { eval(msg); } }); } });
при очистке ничего не происходит
Сообщение отредактировал nk: 08 Октябрь 2012 - 13:24
#12
Отправлено 07 Октябрь 2012 - 21:47
#13 Гость_Roman_*
Отправлено 08 Октябрь 2012 - 08:15
#14
Отправлено 08 Октябрь 2012 - 10:51
Roman (08 Октябрь 2012 - 08:15) писал:
это понятно, вопрос был про "интерактивное" заполнение, при выборе подтягиваются данные как бы "по умолчанию", а если надо пользователь их изменяет.
на вопрос выше по очистке поля ответите?
#15 Гость_Roman_*
Отправлено 08 Октябрь 2012 - 13:23
Вот этот ненужный кусок кода:
if (customer_val == "") { document.getElementById("value112").value = ""; document.getElementById("value112").value = ""; } else....замените на
if (document.getElementById("edit_value112").value != "") { $.ajax( ......
#16
Отправлено 08 Октябрь 2012 - 13:24
#17 Гость_Roman_*
Отправлено 08 Октябрь 2012 - 13:28
#18
Отправлено 08 Октябрь 2012 - 14:06
#19
Отправлено 18 Октябрь 2012 - 07:50
document.getElementById("value113").value = "";
а поле связи не очищается на самой форме - при сохранении ругается, что оно не заполнено, перевыбираешь - сохраняет
Сообщение отредактировал nk: 18 Октябрь 2012 - 07:57
#20 Гость_Roman_*
Отправлено 18 Октябрь 2012 - 08:14
document.getElementById("value113").value = ""; document.getElementById("edit_value113").value = "";Ваш код очищает только скрытое поле, в котором содержится ид целевой записи поля связи, поэтому поле считается не заполненным.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных