2014-01-15 99 views
1

我有一些麻煩我的代碼,我希望它無論何時我進入執行的東西php文件,但它不工作實況搜索PHP和AJAX

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    function getStates(value) { 
     $.post("search.php", {name:value},function(data) 
      $("#results").html(data); 
     }); 
    } 
</script> 
</head> 
<input type="text" onkeyup="getStates(this.value)"/> 
<br> 
<div id="results"></div> 
<body> 
</body> 
</html> 

PHP

<?php 
mysqli_connect("localhost", "#", "#") or die(mysqli_connect_errno()); 
mysql_select_db("#") or die(mysql_error()); 
$search = $_POST["name"]; 

$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 
while($player = mysql_fetch_array($players)) { 
    echo "<div>" . $players["firstname"] . "</div>"; 
} 

?>

+0

什麼不工作?檢查您的瀏覽器控制檯以獲取想法(Chrome和Firefox中的Ctrl + Shirt + I)。 –

+1

你爲什麼要結合'mysqli_connect'和'mysql_select_db'?你想使用'mysql'還是'mysqli'? (我希望你不會使用mysql) –

+0

第9行會導致語法錯誤,我不知道爲什麼 – user3187651

回答

1

從我所看到的,你應該改變這種

'%search%' 

'%{$search}%' 

$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 

編輯

@ user3187651假設你所做的一切都是正確的服務器端。 你的JavaScript更改爲:

function getStates(value) { 
    $.post("search.php", {name:value},function(data){ 
     $("#results").html(data); 
    } 
    ); 
} 

這應該擺脫在客戶端上的錯誤。

+0

我不認爲你的回答是正確的 – Aljie

+0

@Aljie他沒有使用變量$ search,而是使用術語'search '是的,這不可能是唯一正確的答案,因爲他的代碼有很多像AycanYaşıt提到的缺陷。 – phpcoderx

0

有什麼東西是你的代碼丟失:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> //ur getting the jquery via online 
<script> 
$(document).ready(function(){ 
    $("#textBoxId").change(function() //triggers when you change the value in your textbox 
    { 
     var value = $(this).val(); //gets the value of your textbox 
     $.post("search.php", {id:value},function(data) 
      $("#results").append(data); 
     }); 
    } 
}); 
</script> 
</head> 
<body> 
<input type="text" id="textBoxId"/> 
<br> 
<div id="results"></div> 
</body> 
</html> 

而且在你的PHP:

<?php 
mysqli_connect("localhost", "#", "#") or die(mysqli_connect_errno()); 
mysql_select_db("#") or die(mysql_error()); 
$search = $_POST['id']; 
$returnData = ""; 
$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 
while($player = mysql_fetch_array($players)) { 
    $returnData .= "<div>" . $players["firstname"] . "</div>"; 
} 
echo $returnData; 
+0

在我的記事本和Chrome控制檯中給出了第12行的語法錯誤:Uncaught SyntaxError:意外的標識符 – user3187651

+0

請重試我的更新代碼。你的文本框不在你的身體標籤內,這不是一個正確的結構。 – Aljie

+0

我在Google上尋找某物時偶然發現了這個答案。就像OP在發佈的代碼中一樣,您將MySQL API與「mysqli_」和「mysql_」函數混合,這些函數不會相互混合,並且應該已經發送給OP。 –

1

你缺少{。只是做:

function xyx(name) { 
    $.post("search.php", { name: value }, function(data) { 
     $("#results").html(data); 
    }); 
}