2013-11-12 3 views
0

Я написал код для автозаполнения в текстовом поле. Моя проблема заключается в том, как присваивать значения отключенному текстовому полю на основе выбора автозаполнения. У меня есть два названия продукта и цена продукта. Имя продукта находится на автозаполнении. цена продукта должна динамически меняться в соответствии с выбором автозаполнения.Ajax - изменение значений отключенного текстового поля при выборе автозаполнения

<tr> 
    <td class="header" align="left" valign="top"> 
    Enter the product<span class="required">*</span> 
    </td> 
    <td> 
    <input class="text" type="text" name="product" id="tag" value="" align="left" size="75" maxlength="80"> 
    </td> 
    <td class="header" align="left" valign="top"> 
    price 
</td><td> 
    <input class="text" disabled type="text" name="price" value="" align="left" size="75" maxlength="80"> 
</td> 
</tr> 

Jquery автозаполнение (autocomplete.php отголоски ценность моего продукта говорит А ABC DEF)

<script> 
$(document).ready(function(){ 
$("#tag").autocomplete("autocomplete.php", { 
    selectFirst: true 
}); 
}); 
</script> 

Должен ли я эхо мой autocomplete.php, как хуг 100 аЬс 212 Защиту 200? Любая помощь была бы весьма признательна

ответ

0

Вам нужно использовать функцию select.

$("#tag").autocomplete("autocomplete.php", { 
    source: "your link to the json feed here", 
    selectFirst: true 
    select: function(event, ui) { 
     $("#element_needs_editing").val(ui.item.value); 
     return false; 
    } 
}); 

Кроме того, вам нужно будет отредактировать ваш autocomplete.php в формате json. С полем value он, вероятно, может содержать текст или идентификатор или что-то в этом роде. С помощью массива вы можете отправить более одной переменной на первую страницу. Лучше всего загрузить результат в массив и выполнить эхо-код с помощью json_encode($array);

Вывод результатов поиска должен быть в формате json. Лучший способ добиться этого - загрузить все значения результатов поиска в массив и отправить его через json_encode.

<?php 
//A simple array 
$data = array(); 
$data[0]['value'] = 1; 
$data[0]['item_code'] = "A001"; 
$data[0]['price'] = 15; 
$data[1]['value'] = 2; 
$data[1]['item_code'] = "A002"; 
$data[1]['price'] = 20; 
echo json_encode($data); 
?> 

Вышеприведенный результат приведет к выходу, который будет использоваться jquery.

[{"value":1,"item_code":"A001","price":15},{"value":2,"item_code":"A002","price":20}] 

Теперь, если вы хотите сослаться на "Код товара" вы просто должны обращаться к

$("#element_with_item_code").val(ui.item.item_code); 

или цена

$("#element_with_price").val(ui.item.price); 
+0

Я чрезвычайно новичок в json и ajax. Я был бы рад, если бы вы могли поделиться некоторыми примерами относительно этого qn. – JakeNsmith

+0

Отъезд . В нем есть демонстрация того, что я считаю, что вам нужно. –

+0

Да, я сделал это автозаполнение самостоятельно. Но дело в том, что есть еще одно отключенное текстовое поле для цены, которое динамически изменяет его значение в соответствии с выбранным продуктом. – JakeNsmith

0

попробовать что-то вроде этого

 $(document).ready(function(){ 
      $("#tag").autocomplete("autocomplete.php", { 
       selectFirst: true, 
       select: function(event, ui) { 
        if(ui.item){ 
         document.getElementsByName('price')[0].value = ui.item.value 
        } 
       } 
      }); 
     }) 
Смежные вопросы