显示使用 PHP 脚本过滤输入字段值的 MYSQL 数据



我是新来的,所以欢迎任何建议。

我遇到一种情况,即我正在使用javascript过滤器函数来为输入字段选择值。提交时,将运行一个 php 脚本,该脚本根据相关输入字段的值进行过滤。由于某种原因,这不起作用,因为我是新手,我认为这是一个常见的错误。显然,这里有一些小问题,它让我发疯。我想改进这一点并在这里获得最佳实践解决方案。

在下面找到有问题的代码:

.HTML:

<div class="searchContainer">
<div id="productDiv">
<form autocomplete="off" onsubmit="search(this.value)">
<div class="autocomplete">  
<input id="myInput" type="text" placeholder="Search...">
</div>
<button type="submit">Go</button>
</form>
</div>
</div>

Javascript:

function search(str) {
if (str == "") {
document.getElementById("myInput").value = "";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("products").value = this.responseText;
}
}
xmlhttp.open("GET", "filterMerchant.php?q=" + str, true);
xmlhttp.send();
}

PHP - (filterMerchant.php(:

<?php
include('dbconnect.php');
$q = intval($_GET['q']);
mysqli_select_db($mysqli,"theDB");
$search="SELECT * FROM thetable WHERE ref = '".$q."'";
$result = mysqli_query($mysqli,$search);
while($row = mysqli_fetch_array($result)) {
echo "<a class="merchantOutput">" . $row['merch'] . "</a>";
echo "<a class="priceOutput"><strong>" . $row['cost'] . "</strong></a>";
echo "<img src="img.png" style="height:42px;width:42px;" 
onclick="showMerchant(this.value)" value="TestProfile" 
class="merchantLink">";       
}
mysqli_close($mysqli);
?>

您需要阻止默认表单提交。您可以通过从onsubmit代码返回false来执行此操作。

<form autocomplete="off" onsubmit="search(this.value);return false">

最新更新