Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматическое заполнение формы, Связанные поля 
V
    Опции темы
Pena
  Дата 21.3.2012, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



Похоже задача настолько элементарна, что в сети я для её решения практически ничего не нашёл.
Есть база данных с информацией о цели (пользователе, товаре и т.п.). При заполнении формы необходимо, чтобы после ввода значения в поле "наименование цели" отправлялся запрос к БД и при нахождении введённого значения возвращался результат с информацией, которая бы заполняла поля формы.
Здесь нашёл пример решения задачи. но по средствам библиотеки Prototype. И исковеркав образец под свои нужды получил:
Код

<form action="сайт.хрю/php/Script.php" method="POST" id="FormName_id" name="FormName_name">
 <input type="text" id="Input4Text_id_0" name="Input4Text_name_0">
 <input type="text" id="Input4Text_id_1" name="Input4Text_name_1">
 <input type="text" id="Input4Text_id_2" name="Input4Text_name_2">
 <textarea id="Textarea_id_3" name="Textarea_name_3"></textarea>
</form>
 <script type="text/javascript">
function getData(){
 new Ajax.Updater('result', 'сайт.хрю/php/getData.php', {
  method: 'post', parameters: $('FormName_id').serialize(), onSuccess: function(transport){
   $('Input4Text_id_1').value = transport.responseXML.getElementsByTagName('str_1')[0].firstChild.nodeValue;
   $('Input4Text_id_2').value = transport.responseXML.getElementsByTagName('str_2')[0].firstChild.nodeValue;
   $('Textarea_id_3').innerHTML = transport.responseXML.getElementsByTagName('str_3')[0].firstChild.nodeValue;
  }
 });
}
 </script>


и getData.php:

Код

<?php
header( "content-type: text/xml" );

if(isset($_POST['Input4Text_id_0'])){

 require "{$_SERVER[DOCUMENT_ROOT]}/Options.php";
 require "{$_SERVER[DOCUMENT_ROOT]}/php/Connection.php"; //Вставки для подключения к БД (не суть)

 $Запрос = "SELECT * FROM `TableName` WHERE `ColName_0` LIKE '{$_POST['Input4Text_id_0']}' LIMIT 1";
 $Ответ = mysql_query($Запрос) or die('Не пашет, ибо ' . mysql_error());
 while($Поле = mysql_fetch_array($Ответ)){
  $strrr1 = $Поле['ColName_1'];
  $strrr2 = $Поле['ColName_2'];
  $strrr3 = $Поле['ColName_3'];
 }
}
?>
<data>
 <str_1><?echo $strrr1;?></str_1>
 <str_2><?echo $strrr2;?></str_2>
 <str_3><?echo $strrr3;?></str_3>
</data>


Подскажите как это преобразить, чтобы заработало с jQuery???

Это сообщение отредактировал(а) Pena - 21.3.2012, 13:01
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
Pena
Дата 22.3.2012, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



Если в jQuery эта задача решается иначе - не проходите мимо: мне главное результат))
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
Pena
Дата 22.3.2012, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



Похоже невыполнимая задача xD
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
Pena
Дата 23.3.2012, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



Может так?:
Код

<script type="text/javascript">
function getData(){
$.post('сайт.хрю/php/getData.php', $('#FormName_id').serialize())
.done(function(data, textStatus, jqXHR) {
$('#Input4Text_id_1').val($('str_1:first',data)[0].firstChild.nodeValue);
$('#Input4Text_id_2').val($('str_2:first',data)[0].firstChild.nodeValue);
$('#Textarea_id_3').val($('str_3:first',data)[0].firstChild.nodeValue);
})
.fail(function(){
alert('Что-то пошло не так');
});​
</script>


=\
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
ksnk
Дата 23.3.2012, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



А зачем передавать данные xml? json вроде на порядок удобнее в этом случае.
Код

...
$Запрос = "SELECT 
   ColName_1 as `#Input4Text_id_1`,
   ColName_2 as `#Input4Text_id_2`,
   ColName_3 as `#Textarea_id_3`,
 * FROM `TableName` WHERE `ColName_0` LIKE '{$_POST['Input4Text_id_0']}' LIMIT 1";
 $Ответ = mysql_query($Запрос) or die('Не пашет, ибо ' . mysql_error());

}
echo json_encode(mysql_fetch_array($Ответ));
?>


Код

<script type="text/javascript">
function getData(){
$.post('сайт.хрю/php/getData.php', $('#FormName_id').serialize(),'json')
.done(function(data, textStatus, jqXHR) {
   for(var a in data){
      $(a).val(data[a])
   }
})
.fail(function(){
alert('Что-то пошло не так');
});​
</script>





--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Pena
  Дата 24.3.2012, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



 smile Я тут даже не понимаю как подстановку сделать  smile ($('#Input4Text_id_1')... $('#Input4Text_id_2')...)

А-а-а... туплю... сейчааас...

Это сообщение отредактировал(а) Pena - 24.3.2012, 02:56
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
Pena
  Дата 24.3.2012, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КорнеплодЪ
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 20.4.2006
Где: эРэФия, аул Москв а...

Репутация: нет
Всего: нет



Блин, работает... ОГРОМНАЯ ПРИЗНАТЕЛЬНОСТЬ!
--------------------
Самовар по всем вопросам - сильно не ругайте 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.