从jquery自动完成中获取数组

时间:2016-02-11 16:19:33

标签: javascript php jquery arrays autocomplete

我正在使用JQuery从远程数据库中自动完成名称...这一切都正常。

但是,我想从自动完成中获取与该名称相关的所有信息,并将其保存到php数组......

有人可以帮忙吗?

这是我自动填充的代码

<script type="text/javascript">
$(function() {
$("#findname").autocomplete({
    source: "templates/search2.php?field=sire",
      minLength: 5 
  });
});
</script>

以下是我称之为......

<input type="text" name="name"  id = "findname" size="45"><br>

所以,当我找到我正在寻找的名称时,哪个工作正常,如何返回该命名记录的所有数据并存储到数组中,然后用数据调用模态?

由于

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想得到一个工人的数据以模态显示,那么,首先你需要在一次通话中获得你想要的所有数据,而不仅仅是名字,还有邮件,年龄或其他属性,然后将其保存在对象中。

例如:

在您拨打信息后,您应该得到以下信息:

var workersData=[{name:"a1",mail:"m1",age:20},
{name:"a2",mail:"m2",age:20},
{name:"a3",mail:"m3",age:20},
{name:"a4",mail:"m4",age:20}];

然后创建一个方法来获取所有名称并将此数组放入自动完成输入中:

function listStringsFromArray(list, atribute) {
var arrayString = [];
if (list) {
    for (var index = 0; index < list.length; index++) {
        arrayString.push(list[index][atribute]);
    }
}
return arrayString;
}

$("#findname").autocomplete({
source: listStringsFromArray(workersData,"name"),
  minLength: 5 
});

最后为输入添加一个方法,以便随时更改,以搜索workers数组中的其余数据并将信息放在所需的位置:

 $("#findname").keypress(function(e){
        fillDataModalWorker();      });

  function fillDataModalWorker(){
var workerName=$("#findname").val();
var mail,age;

    for (var index = 0; index < workersData.length; index++) {

        if(workersData[index]["name"]==workerName){
            mail=workersData[index]["mail"];
            age=workersData[index]["age"];
        $("#inputMailModal").val(mail);
        $("#inputAgeModal").val(age);
        break;
        }else{
            $("#inputMailModal").val("Worker´s information not found");
        $("#inputMailModal").val("Worker´s information not found");

        }
    }


 }

希望它能解决。