Jquery使用PHP和MySQL基于一个字段自动完成两个字段

时间:2012-07-03 11:23:28

标签: php javascript mysql autocomplete jquery-autocomplete

我在MySQL数据库中有一个表,其中包含以下列:名称,地址,职业,phone_number和serial_number。在我的html表单中,除了其他字段之外,我还有用于输入姓名,电话号码和序列号的文本字段。我如何使用jQuery自动完成和PHP / MySQL使用序列号字段填充名称和电话号码字段?我已设法在一个输入字段上设置autopopulate,但我不知道如何设置它以使用具有自动完成功能的一个字段填充其他两个字段。感谢

这些是字段

   <input type="text" name="name" id="autocomplete" />
   <input type="text" name="phone_number" id="autocomplete" />
   <input type="text" name="serial_number" id="autocomplete" />

这是我用于从db

获取字符串的php脚本
<?php
$dbhost = 'YOUR_SERVER';
$dbuser = 'YOUR_USERNAME';
$dbpass = 'YOUR_PASSWORD';
$dbname = 'YOUR_DATABASE_NAME';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);

$return_arr = array();

if ($conn)
{
    $fetch = mysql_query("SELECT name, phone_number, serial_number FROM users");


    while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
        $row_array['value'] = $row['name'] . " " . $row['phone_number'] " . $row['serial_number'] ";         
        array_push($return_arr,$row_array);
    }


}
mysql_close($conn);
echo json_encode($return_arr);
?>

2 个答案:

答案 0 :(得分:1)

您需要做的是,当完成序列号的自动完成时,运行ajax-call以根据序列号检索姓名和电话号码,然后填充这些字段,如下所示:

$('input[name=serial_number]').autocomplete({
    onComplete: function (val) {
        $.getJSON('/url-to-fetch-name-and-phone.php?serial_number=' + val, function (data) {
            $('input[name=name]').val(data.name);
            $('input[name=tel]').val(data.tel);
        });
    }
});

显然,根据您的设置,您需要更改一些功能和变量名称。

答案 1 :(得分:0)

我感谢这是一个老问题,但my answer to a similar question就是您所追求的,其中一个自动填充的结果会填充多个字段。