根据自动完成选择的值显示信息

时间:2015-11-06 10:58:43

标签: php jquery ajax autocomplete

我在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);

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

1 个答案:

答案 0 :(得分: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> 摘要。

blur

FIDDLE

这将适用于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); } }); }); 个请求。

类似的东西:

db.MessageUserConnection.find( { $and: [ {'confirmationNeeded': true}, {'read': false}, {'userCreatedMessage.$id' : ObjectId('5589929b887dc1fdb501cdba') }, {'userReceivedMessage.$id' : ObjectId('5689929b887dc1fdb501cdbc') } ] } )

<强> FIDDLE here

希望这会有所帮助。