我創建了一個類似於谷歌搜索使用JQuery的即時搜索。突出顯示的代碼不起作用。這是奇怪的,因爲他們自己的工作很好,其他一切正常工作。任何想法爲什麼發生這種情況? Q1。 searchq()工作正常,但createq()函數不起作用,變量txt可以發佈到其他文件(search.php)。但是,函數createq()不能POST。它在測試後得到了全局變量txt,但是無論使用什麼POST方法,php文件(create_object.php)都無法得到它。任何人都可以幫助寫一些可以在我的代碼中工作的POST代碼。Javascript兩個奇怪的問題:POST不工作,window.location.href不工作
Q2 我想創建一個函數,當按下回車鍵時,用戶將被重定向到第一個搜索結果(用一個url來錨定)。爲了達到這個目的,我創建了一個函數,讓變量redirectUrl將錨定的url作爲字符串獲取,但是,重定向函數window.location.href不起作用,頁面只是刷新了。我通過自己在另一個文件中測試了window.location.href函數,它雖然工作。這很奇怪,我的網頁只是刷新,它甚至刷新,當我直接到谷歌。 window.location.href( 「www.google.com」)。
請注意,我沒有在這裏包括連接到數據庫功能。因爲我認爲數據庫的用戶名和密碼設置與您的不同,所以如果您想測試它,請自行創建。 mysql被設置爲一個名爲「objects」的表,並且它有一個名爲「name」的列。
在此先感謝!
<html>
<!-- google API reference -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<!-- my own script for search function -->
<center>
<form method="POST">
<input type="text" name="search" id="search" style="width:400px " placeholder="Search box" onkeyup="searchq();">
<div id="search_output">
</div>
</form>
</center>
<!-- instant search function -->
<script type="text/javascript">
function searchq(){
// get the value
var txt = $("input").val();
// post the value
if(txt){
$.post("search.php", {searchVal: txt}, function(result){
$("#search_output").html(result+"<div id=\"create\" onclick=\"creatq()\"><br>Not found above? Create.</div>");
});
}
else{
$("#search_output").html("");
}
};
function createq(){
// allert for test purpose: test if the txt has got by the createq function
alert(txt);
**$.post("create_object.php",{creatVal:txt});**
}
// if enter key pressed, redirect page to the first search result
$("#search").keypress(function(evt){
if (evt.which == 13) {
// find the first search result in DOM and trigger a click event
var redirectUrl = $('#search_output').find('a').first().attr('href');
alert(redirectUrl);
**window.location.href = "www.google.com";
window.location.href = "www.google.com";**
}
})
</script>
</html>
PHP文件(的search.php)
<?php
if(isset($_POST["searchVal"])){
//get the search
$search=$_POST["searchVal"];
//sort the search
$search=preg_replace("#[^0-9a-z]#i","",$search);
//query the search
echo "<br/>SELECT * from objects WHERE name LIKE '%$search%'<br/>";
$query=mysqli_query($conn,"SELECT * from objects WHERE name LIKE '%$search%'") or die("could not search!");
$count=mysqli_num_rows($query);
//sort the result
if($count==0){
$output="there was no search result";
}
else{
while($row=mysqli_fetch_assoc($query)){
$object_name=$row["name"];
$output="<div><a href='##'>".$object_name."</a></div>";
}
}
echo $output;
}
?>
php文件(create_object.php)
<?php
if(isset($_POST["createVal"])){
$name=$_POST["createVal"];
var_dump($name);
}
?>
您不應將多個問題作爲一個問題發佈,這會減少獲得答案的機會。 – regular
'** $。post'在函數'createq' - 我猜控制檯中有錯誤當你加載頁面 – RamRaider
沒有錯誤在控制檯 – raichuchu