使用SQL查询中的数据填充输入字段的最佳方法?

时间:2010-10-22 18:36:52

标签: php jquery

我有一个表单,根据自动填充字段中的选择填充3个字段。这很好,运作良好,但我有一个第四个字段,需要根据自动填充自动填充的一个字段自动填充。

填充第4个字段的最佳方式是什么?

这是我在main中的代码:

<script type="text/javascript">
$().ready(function() {
    $("#PartNumberID").autocomplete({
    source: "ajax/getData.php",
    minLength: 6,
    delay: 100,
    select: function(event, ui) {
         $("#loadingIcon").show();
         $("#PartNumberID").val(ui.item.value);
         $("#BoxID").val(ui.item.dietype);
         $("#PackageID").val(ui.item.pkg);
         $("#loadingIcon").fadeOut();
    },
    change: function(event, ui){
         $("#ProcessID").val("RESULT FROM SQL STATEMENT USING BoxID GOES HERE");
    }
    });
});
</script>

这是我的文件,名为process.php,如果你传递GET var of box,它将获得进程,我只想知道如何发送box var并获取该文件的结果并将其放入输入字段:

<?php
require_once '../includes/conn.php';
$sql=mysql_query("SELECT PROCESS FROM data WHERE `box` = \"".$_GET['box']."\" GROUP BY PROCESS") or die("mysql error".mysql_error());
$part['process']=mysql_result($sql,0);
$parts[]=$part;
echo json_encode($parts);
?>

2 个答案:

答案 0 :(得分:1)

像这样......

change: function(event, ui){
         $.get('ajax/boxQuery.php?box='+$("#BoxID").val,
               function(result){
                      $("#ProcessID").val(result);
               }
    }

我使用了$("#BoxID").val,但实际上你应该使用ui参数,我只是不知道正确的语法是什么。

答案 1 :(得分:0)

查看JSON结果会很有帮助,但这基本上就是你需要的。

    $(document).ready(function() {
        $("#PartNumberID").autocomplete({
        source: "ajax/getData.php",
        minLength: 6,
        delay: 100,
        select: function(event, ui) {
             $("#loadingIcon").show();
             $("#PartNumberID").val(ui.item.value);
             $("#BoxID").val(ui.item.dietype);

             $("#PackageID").val(ui.item.pkg);
             $("#loadingIcon").fadeOut();
        },
change: function(event, ui)
{
$.ajax({
    type: 'GET',
    data: '?box=' . ui.item.dietype,
    url: 'process.php',
    success: function(data)
    {
    $.each(data) {
    $("#ProcessID").val(this.process);
    }
    }
    })
}

        });
    });