2015-11-06 3 views
1

У меня есть динамическое текстовое поле в Demo JSFiddle, и я выполнил автозаполнение части для моего элемента.
Отображать информацию, основанную на выбранном значении автозаполнения

$ (document).ready(function() { 
    $("#addField").click(function() { 
     var intId = $("#buildyourform div").length + 1; 
     var fieldWrapper = $("<div id=\"field" + intId + "\"/>");     
     var fpartNo = $("<input type=\"text\" name=\"erfq_partNo[]\" class=\"partNumber\"/>"); 
     var fDescription = $("<input type=\"text\" name=\"erfq_desc[]\" disabled/>");     
     var fPrice = $("<input type=\"text\" name=\"erfq_price[]\" disabled style=\"width:80px\"/>"); 
     // remove textboxes and dropdown boxes 
     var removeButton = $("<input type=\"button\" class=\"remove\" value=\"-\" />"); 
     removeButton.click(function() { 
      $(this).parent().remove(); 
     }); 
     fieldWrapper.append(fpartNo); 
     fieldWrapper.append(fDescription); 
     fieldWrapper.append(fPrice); 
     fieldWrapper.append(removeButton); 
     $("#buildyourform").append(fieldWrapper); 

     $(".partNumber").autocomplete({   
      minLength:1, 
      source: 'readPart.php', 
      select: function(event, ui){ 
       var selected = ui.item.value; 
      } 
     }); 
    }); 
}); 

readPart.php

$searchTerm = $_GET['term']; 
$getPartSQL = base_executeSQL("SELECT * FROM eitem_item where eitem_item_part_no LIKE '%".$searchTerm."%' ORDER BY eitem_item_part_no"); 
while($Partdata_row = base_fetch_array($getPartSQL)) 
if (base_num_rows($getPartSQL)!= 0) 
{ 
    $data[] = $Partdata_row['eitem_item_part_no']; 
} 
echo json_encode($data); 

Первый текстовое поле используется для ввода номер детали
Мой вопрос когда-то часть не была введена, другая соответствующая информация (описание и цена) будут отображаться в других текстовых полях readonly, которые данные извлекаются из моей базы данных. Я не знаю, что продолжить с этим select: function(event, ui){. Любая помощь будет оценена.

ответ

0

хорошо, если вы хотите получить данные на основе part # от database вы можете вызвать ajax вызов blur из text box номера детали.

вы можете сделать что-то вроде этого

$("#partNum").blur(function(){ 
    var part = $("#partNum").val(); 
    $.ajax({ 
     type: 'get', 
     url:'/echo/js/?js='+part, //url to your database fetcher code. 
     complete: function (response) {  //response contains what you got from pap page 
      $('textarea#des').val(response.responseText); //set textarea and textbox value popping out from db file 
     } 
    }); 
}); 

HTML Вот фрагмент кода для этого запроса.

<input type = 'text' id = 'partNum' name = 'parts' /> 
<textarea id = "des" name = 'description' disabled></textarea> 

FIDDLE

это будет работать на blur означает, что при нажатии вне textbox. Но если вы хотите получать данные в реальном времени (пока пользователь печатает), вы должны бомбить ajax запросов на событие keyup.

что-то вроде этого:

$("#partNum").keyup(function(){ 
    var part = $("#partNum").val(); 
    $.ajax({ 
     type: 'get', 
     url:'/echo/js/?js='+part, 
     complete: function (response) { 
      $('textarea#des').val(response.responseText); 
     } 
    }); 
}); 

FIDDLE here

Надеется, что это поможет.

+0

Спасибо, Mubin, вы дали мне идею, и я взял некоторые из ваших кодов в качестве ссылок. Спасибо! – Sollo

+0

рад, что помог @Sollo :) – Mubin

Смежные вопросы