爲什麼我一直都在使用注意:未定義索引和數據未找到因此,當我開始鍵入搜索字段時?
這裏北京時間我的HTML代碼:
<body>
<div class="container">
<br />
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-secondary"
type="button">Search</button>
</span>
<input type="text" class="form-control" name="search_text"
id="search_text" placeholder="search by a name">
</div>
</div>
</div>
<br />
<div id="result"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#search_text').keyup(function() {
var search = $(this).val();
$('#result').html('');
$.ajax({
url:"fetch.php",
method:"POST",
data:search,
dataType:"text",
success:function(data){
$('#result').html(data);
}
});
});
});
</script>
</body>
</html>
PHP代碼:
<?php
$serverName = "myServer";
$connectionInfo = array("Database"=>"myTable", "Uid" => "myUser", "PWD" => "myPassword");
$conn = sqlsrv_connect($serverName, $connectionInfo);
$sql = "SELECT * FROM(SELECT AB.Bezeichnung1 AS Name,
CASE FC.Ebenen
WHEN 1 THEN FC.Komponente1
WHEN 2 THEN FC.Komponente2
WHEN 3 THEN FC.Komponente3
END AS Farbe,
GC.Bezeichnung AS Groesse,
SKU.KommLagerplatz AS Position, SKU.Ueberlagerbereich
FROM Artikel A
LEFT JOIN ArtikelBezeichnungen AB ON (A.Mandant=AB.Mandant AND A.HCode=AB.HCode AND A.Style = AB.Style AND AB.Sprache='DE')
INNER JOIN ArtikelVariantenCSG CSG ON(A.Mandant= AB.Mandant AND A.HCode=AB.HCode AND A.Style = AB.Style)
INNER JOIN ArtikelFarbcodes FC ON (CSG.Farbcode = FC.Farbcode AND CSG.Mandant=FC.Mandant)
INNER JOIN ArtikelVariantenSKU SKU ON(SKU.Mandant=CSG.Mandant AND SKU.HCode=CSG.HCode AND SKU.Style=CSG.Style AND SKU.Farbcode=CSG.Farbcode)
INNER JOIN ArtikelGroessencodes GC ON(GC.Mandant=SKU.Mandant AND GC.Groessencode= SKU.Groessencode)) AS QRY WHERE Name LIKE '%".$_POST["search"]."%'";
$result = sqlsrv_query($conn, $sql);
if($result === false) {
die(print_r(sqlsrv_errors(), true));
}
if(sqlsrv_num_rows($result) > 0){
$output .='<h4 align="center">Search Result</h4>';
$output .='<div class="table-responsive">
<table class="table table bordered">
<tr>
<th>Name</th>
<th>Farbe</th>
<th>Groesse</th>
<th>Position</th>
</tr>';
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$output .= '<tr>
<td>'.$row["Name"].'</td>
<td>'.$row["Farbe"].'</td>
<td>'.$row["Groesse"].'</td>
<td>'.$row["Position"].'</td>
</tr>';
}
echo $output;
}
else{
echo'Data Not Found';
}
sqlsrv_free_stmt($result);
?>
我加入了SQLSRV驅動程序,以MSSQL的連接。所以我可以建立到SQL數據庫的連接。如何實現$ .ajax({})和PHP之間的連接存在問題。
感謝您的幫助
嘗試'數據:{搜索:搜索}',也可以作爲你的代碼是目前非常警惕*寬*打開SQL注入。我建議你看看使用準備好的語句 –