2016-08-20 14 views
0

こんにちは私はPHPとjQueryの初心者ですので、私の質問が愚かな場合は早期申し訳ありません。私はajaxのライブ検索でかなり多くの検索をしてきましたが、インターネット上の多くのヘルプはありません...私は入力ボックスに何も入力しないので何も出ないので、データベースに接続するのは問題だと思ったが、良い。そして、私のコードが正しいと思うので(今はそうではありませんが)、どうすればいいのか分かりません.-))。誰かが私を助けることができれば、それは素晴らしいことでしょう。ここでAjaxライブ検索出力なし

コードです: HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <title>live search test</title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
    <script scr="jquery.js"></script> 

    <script type="text/javascript"> 
     functon getNames(value) { 
     $.post("fetch.php",{partialName:value},function(data) 
      $("#results").html(data); 
     }); 
     } 

    </script> 

</head> 
<body> 
    <h1>LIVE SEARCH WITH AJAX TEST</h1> 
    <input type="text" onkeyup="getNames(this.value)"> 
    <br> 
    <div id="results"> 

    </div> 
</body> 
</html>  

はPHP:

<?php 
mysql_connect("localhost","root","") or die(mysql_error()); 
mysql_select_db("smartphone")or die(mysql_error()); 


$partialName = $_POST['partialName']; 

$names = mysql_query("SELECT name FROM smartphone WHERE name LIKE '%$partialName%'"); 
while ($name = mysql_fetch_array($names)) { 
    echo"<div>".$name['name']."</div>"; 
} 

?> 
+0

あなたのmysqlクエリはSQLインジェクションの影響を受けやすいので、バインドされたPDOパラメータのmysql_queryを切り替えてください。 https://secure.php.net/manual/en/ref.pdo-mysql.php – jedifans

+1

あなたのPHPコードに結果をエコーし​​ないでください。表示する必要のあるHTMLのXMLまたはjson形式を作成し、フォーマットされたデータを返します。それからあなたのjqueryにそれを表示してください。 –

+0

@tomレスポンスに注意を喚起し、アラート(データ)をリクエストするかどうかにかかわらず、コンソール、ネットワークタブ、レスポンス、およびajaxコールでも確認できます。 – Keerthivasan

答えて

0

私は、あなたのブラウザのコンソールツールをチェックすると、あなたは '$が定義されていない' 参照してくださいと思います。

それはこの例のためだった場合を除き、次は正しくありません。

<script scr="jquery.js"></script> 

それは次のようになります。

<script src="jquery.js"></script> 

も、安全なPDOバインドパラメータのスタイルにあなたの不安定なSQLクエリを切り替えてください悪用されるのを避けてください。

+0

私は2つの "jquery.js"の違いを見ることができませんし、コード – tom3883

+0

@ tom3883 'scr'対' src'を確保していただきありがとうございます。 sourceと同様に正しいものはsrcです。 – Vaviloff

+0

ああありがとう – tom3883

関連する問題