我在将文本输入与我存储在本地数据库中的值进行比较时遇到问题。
当我在 ID 为 #searchBar 的文本输入字段中输入文本时,出现此错误:
注意:第6行C:\wamp\www\lifesearch\requires\search.php中未定义索引:searchBit
我已经尝试了一段时间来解决这个问题,但没有任何真正的成功。我不明白为什么它说索引未定义。
如果有人能提供可能的解决方案,我将不胜感激。
代码如下:
search.js
function search(searchQuery) {
$.post("requires/search.php", {searchBit:searchQuery}, function(data) {
$("#searchResults").html(data);
});
}
$(document).ready(function() {
$("#searchBar").focus(function() {
if ($("#searchBar").val() == "start searching...") {
$("#searchBar").val("");
}
$(this).addClass("searchBarFocus");
$(this).removeClass("searchBarBlur");
});
$("#searchBar").blur(function() {
$(this).addClass("searchBarBlur");
$(this).removeClass("searchBarFocus");
});
$("#searchBar").keypress(function() {
$("#searchResults").fadeOut(200);
$("#searchResults").fadeIn(200);
});
$("#search").mouseleave(function() {
$("#searchResults").fadeOut(200);
});
$("#searchBar").keyup(search(this.val()));
});
searchBar.php
<div id="search">
<form action="requires/search.php">
<input type="text" value="start searching..." id="searchBar" class="searchBarBlur"
autocomplete="off"/>
</form>
<div id="searchResults">
</div>
</div>
search.php
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "websites";
$searchBit = $_POST['searchBit'];
mysql_connect($host, $username, $password);
mysql_select_db($database) or die("Failed to select table from database");
$userSearch = mysql_real_escape_string(addslashes($searchBit));
$searchResults = mysql_query("SELECT name FROM sites WHERE name LIKE '$userSearch%'");
while ($row = mysql_fetch_assoc($searchResults)) {
echo "<div class='searchResult'>".$row['name']."</div>";
}
?>
提前致谢!
最佳答案
您的表单输入字段没有应为“searchBit”的名称属性。 $_POST['searchBit'] 因此未定义..
关于php - 使用 MySQL 和 jQuery 比较数据库值和文本输入的问题 - undefined index 和 mysql_fetch_assoc() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976329/