通过对单个字段使用自动完成来填充多个字段?

时间:2013-09-16 12:54:25

标签: php jquery mysql ajax

我在nameid表单中有两个文本字段,其中name是自动填写字段。如果我点击name,相关的id应显示在第二个文本框中。这是我正在使用的代码:

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
        <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" />

        <script type="text/javascript">
            $(document).ready(function(){
                $("#name").autocomplete({
                    source: 'getautocomplete.php',
                    minLength: 1
                    select:function(evt, ui) {
                        this.form.id.value = ui.item.id;
                    }
                });
            });
        </script>
    </head>

    <body>
        <form method="post" action="">
            Name : <input type="text" id="name" name="name" />
            Id : <input type="text" id="id" name="name" />
        </form>
    </body>
<html>

使用以下方法从DBI中检索数据:

<?php
    mysql_connect("localhost","root","");
    mysql_select_db("test");

    $term = $_GET["term"];
    $query = mysql_query("SELECT * FROM student where name like '%".$term."%' order by name ");
    $json = array();

    while ($student = mysql_fetch_array($query)) {
        $json[] = array(
            'value'=> $student["name"],
            'label'=>$student["name"],
            'id'=>$student["id"]
        );
    }

    echo json_encode($json);
?>

它可以很好地填充单个字段,但如果它适用于两个字段则不行。我没有得到输出。请帮我整理一下。

0 个答案:

没有答案