在onchange上有没有办法填充其他文本框?

时间:2014-02-20 05:15:42

标签: javascript php

这是我的代码。我是php的新手。很抱歉提前。 我实际上想检查我在txtbarcode中的输入,如果它存在于我的数据库中,我想填充txtdescription但我不知道该怎么做或者甚至可能吗?

        <?php
            $barcode = $_POST['txtbarcode'];
            $query = "SELECT * FROM product WHERE product_id = '$barcode'";
            $query_exe = mysql_query($query);
            $chk_query = mysql_num_rows($query_exe);

            if($chk_query > 0)
            {
            $row = mysql_fetch_assoc($query_exe);

            ?>
            <th class = "textbox"><input type = "text" name = "txtbarcode" value = "<?php echo $row['product_id']; ?>"  style="width:80px"/></th>
            <th class = "textbox"><input type = "text" name = "txtdescription" value = "<?php echo $row['product_name']; ?>"    style="width:100px"/></th>
            <?php
            }
            ?>

1 个答案:

答案 0 :(得分:2)

您可以使用JQuery Ajax执行此操作。只需在条形码字段上使用更改侦听器,它就会向check_barcode文件发送一个ajax调用 - 它将查询表并回显您想要的数据。然后,结果将通过JavaScript放入另一个文本域:)。

以下是单独的PHP文件。

<?php
//-----------------------------------
//check_barcode.php file
//-----------------------------------

if (isset($_POST['barcode'])) {
    $query = mysql_query("SELECT * FROM product WHERE barcode = '".$_POST['barcode']."'");
    $num_rows = mysql_num_rows($query);
    if ($num_rows > 0) {
        $row = mysql_fetch_assoc($query);
        echo $row['product_name'];
    }
}
?>

以下是您的HTML和JavaScript代码。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<script>
    $(document).ready(function() {
        $('#txtbarcode').change(function() {
            var barcode = $(this).val();
            $.ajax({
                url: 'check_barcode.php',
                type: 'POST',
                data: {barcode: barcode},
                success: function(result) {
                    $('#txtdescription').val(result);
                }
            });
        });
    });
</script>

<input type="text" name="txtbarcode" id="txtbarcode" />
<input type="text" name="txtdescription" id="txtdescription" />

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(document).ready(function() { $('#txtbarcode').change(function() { var barcode = $(this).val(); $.ajax({ url: 'check_barcode.php', type: 'POST', data: {barcode: barcode}, success: function(result) { $('#txtdescription').val(result); } }); }); }); </script> <input type="text" name="txtbarcode" id="txtbarcode" /> <input type="text" name="txtdescription" id="txtdescription" />


更新:返回更多数据,并填充额外字段。

你需要从php脚本中回显一个包含两个值的json数组。

例如:

然后在JavaScript中

echo json_encode(array('product_name' => $row['product_name'], 'unit_measure' => $row['product_name']));