2015-11-06 71 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); 

第一个文本框是用来输入部件号
我的问题是,一旦部分没有被输入,其他的相关信息(描述和价格)将显示在数据从我的数据库中提取的其他只读文本字段中。我不知道该如何继续select: function(event, ui){。任何帮助将不胜感激。

回答

0

好了,如果你想获得的part #database的基础上,数据可以触发的text box部件号blurajax电话。

你可以做这样的事情

$("#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外点击意思。但是,如果你想获得实时数据(当用户输入时),那么你必须在keyup事件中轰击ajax请求。

是这样的:

$("#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