2017-08-09 80 views
0

我正在开发这个我输入的地方输入产品的名称,并且细节将显示在其他输入字段中。我能够使用jquery自动完成选择产品名称。我想填充基于另一个输入字段的表单输入

以下是我的代码。请问我的代码真的有什么问题,因为它工作一次并停止。

我的HTML

<label for="inputEmail3" class="col-sm-2 control-label">Product Name</label> 
<div class="col-sm-4 ui-widget"> 
<input type="text" class="form-control" placeholder="Name of Product" name="search_prod_name" id="search_prod_name"> 
<div id="product_List"> 
</div> 
</div> 

JQUERY

<script> 
$(document).ready(function(){ 

    $('#search_prod_name').change(function() { 
     var prodd_name = $(this).val(); 
     $.ajax({ 
       url:"select_for_sell.php", 
       method: "POST", 
       data:{prodd_name: prodd_name}, 
       dataType: "JSON", 

       success:function(data) { 
        $('#pro_cat').val(data.pro_cat); 
        $('#product_name').val(data.product_name); 
        $('#manu_name').val(data.manu_name); 
        $('#supp_name').val(data.supp_name); 
        $('#unit_sell_price').val(data.unit_sell_price); 
        $('#manu_dt').val(data.manu_dt); 
        $('#expiry_dt').val(data.expiry_dt); 
        $('#qty_in_stock').val(data.qty); 
       } 
     }); 
    }); 
}); 
</script> 

我的PHP

<?php 

include_once('conn/conn.php'); 
if(isset($_POST["prodd_name"])) { 
    $query_product = "SELECT * FROM sellnsell_products WHERE product_name = '". $_POST["prodd_name"]."' "; 
    $result_product = mysqli_query($cnn, $query_product); 
    while($rrow = mysqli_fetch_array($result_product)) { 
     $data["pro_cat"]   = $rrow["product_cat"]; 
     $data["product_name"]  = $rrow["product_name"]; 
     $data["manu_name"]  = $rrow["manu_name"]; 
     $data["supp_name"]  = $rrow["supp_name"]; 
     $data["unit_sell_price"] = $rrow["unit_sell_price"]; 
     $data["qty_in_stock"] = $rrow["qty"]; 
     $data["manu_dt"]   = $rrow["manu_dt"]; 
     $data["expiry_dt"]  = $rrow["expiry_dt"]; 

    } 
    echo json_encode($data); 
} 
?> 
+1

我看不到像'pro_cat','product_name','manu_name'这样的输入字段我的html –

+0

还在开发者控制台中检查错误。 –

+1

您的脚本处于[SQL注入攻击]风险中(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 即使[如果您正在转义输入,它不安全!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) 使用[编写的参数化语句](http:// php。 net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

回答

0

试试这个改变这一状况,

$('#search_prod_name').change(function() { 

此,

$('#search_prod_name').keydown(function() { 

也改变你的SQL查询中使用准备好的语句直接使用变量在MySQL查询开辟了使用MySQL的注射的方法来攻击系统。

也可以在PHP中删除那些不必要的空格,只是保持简单。

相关问题