2017-08-09 91 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中刪除那些不必要的空格,只是保持簡單。

相關問題