按Tab键时从数据库填充数据

时间:2015-09-12 08:42:32

标签: javascript php jquery ajax

我使用jquery,ajax和php从数据库中检索数据。我想实现一种功能,即当用户输入产品代码并按TAB键时,数据应填入textarea。我是ajax n php的新手,我已经在SQL中检查了我的查询它正在运行..请帮帮我

HTML

<input type="text" class="form-control col-md-5 detectTab" name="product_code" />
<textarea class="form-control autogrow" id="container" name="desc" rows="3" cols="5" placeholder="Remarks" required></textarea>

脚本

    <script type="text/javascript">
$(function(){
    $("#product_code").keydown(function(e){
if(9 == e.keyCode){
       var postlink = 'loaddesc.php';
            $.post(postlink).done(function(data){
                if(data)
                    $("#container").val(data);
                else
                    $("#container").val('No Data Received');
            }
        }
    })
})
</script>

loaddesc.php

<?php
include('config.php');
if($_POST['$product_code'] )
{
$product_code=$_POST['product_code'];
$sql=mysqli_query($con, 'SELECT concat(A.PRODUCT_CAT_NAME," - ", B.name," - ", C.PRODUCT_SERIAL_NO," - ",c.product_desc) Product_Details 
                        FROM dms_product_cat A, dms_product_type B, dms_products c WHERE A.product_cat_id = 1 AND B.product_cat_id = A.product_cat_id and B.type_id = c.product_type
and c.product_code = "$product_code"');
    while($row=mysqli_fetch_array($sql))
    {
    $data=$row['Product_Details'];
    echo $data;
    }
}
?>

2 个答案:

答案 0 :(得分:0)

您的sql查询不起作用,因为不评估单引号字符串中的变量。 无论如何,建立这样的请求是个坏主意。其中有一个SQL注入漏洞。

你应该读到这个: How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

您问题的逻辑解决方案

  

当用户输入产品代码并按TAB键时,数据应为   填写textarea。

  • START
  • 输入框,用户将填写数据并按Tab键
  • 按下按键
  • 的javascript函数调用
  • 检查密钥是否为&#34; tab&#34;
  • jquery post方法触发服务器请求数据
  • 成功获取数据
  • 在所需的textarea中显示数据
  • DONE

代码示例

<html>
<head>
    <title>TEST AJAX</title>
</head>

<body>
    <!-- The input Box -->
    <input type="text" name="product_code" id="product_code" autofocus/>
    <!-- The Text Area -->
    <textarea id="container" name="desc" placeholder="Remarks"></textarea>
</body>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    // Will fire on any key press in input box
    $("#product_code").keydown(function(e){

        //alert(e.keyCode); // Remove the comment to check for keypress Code

        // KeyCode 9 is for TAB key
        if(9 == e.keyCode){
            // Sending via ajax to fetch data
            var postlink = ''; // Required Backend Script Handler
            $.post(postlink).done(function(data){
                // Handling the fetched data
                if(data)
                    $("#container").val(data); // Filling data in textarea
                else
                    $("#container").val('No Data Recieved'); // No data recieved
            }
        }
    })
})
</script>
</html>
  

我相信你的问题现在已经解决了。

谢谢&amp;此致