0

ブラウザのテキストフィールドにデータを入力すると、データベースからデータが取得され、それに応じて表示されます。(例: Google のように)。これが私のphpコードです:

    <?php
    mysql_connect("localhost","root","MobixMySQL") or die(mysql_error());
    mysql_select_db("filter") or die(mysql_error());
    $partialStates = $_POST['partialStates'];
    $states = mysql_query("SELECT name FROM list1 WHERE name LIKE "%$partialStates%"");
    while($state = mysql_fetch_assoc($states)) {
    echo "<div>".$state['name']."</div>";
   }
   ?>

以下は私のhtmlコードです:

   <html>
   <head>
   <script type="text/javascript" src="jquery.js"></script>
   <script type="text/javascript">
     function getStates(value){
     $.post("getStates.php",{partialStates:value},function(data){
     $("#results").html(data);
    });
    }
   </script>
    </head>
    <body>
    <input type="text" onKeyUp="getStates(this.value)" >
    <div id="results"></div>
    </body>
    </html>

Plsは私にどこが間違っているかを提案します....!!!

4

2 に答える 2

0

SQL の引用符でエラーが発生しました...インジェクションとともに。将来の開発のためにPDOを確認してください

$partialStates = mysql_real_escape_string($_POST['partialStates']);
$states = mysql_query("SELECT `name` FROM list1 WHERE `name` LIKE '%$partialStates%'");

編集

jQueryを使用しているため、onkeyupイベントを変更しようとしています。それでもエラーが発生する場合は、FireBugやブラウザの JavaScript デバッガなどを使用して、さらにエラーがないか確認してください。以下を試してください (未テスト):

<script type="text/javascript">
$(document).ready(function() {
    $('input#myFilter').keyup(function(event) {
        $.post("getStates.php",{partialStates:$(this).val()},function(data){
            $("#results").html(data);
        });
    }).keydown(function(event) {
        if (event.which == 13) {
            event.preventDefault();
        }  
    });
});
</script>
</head>
<body>
<input type="text" id="myFilter">
<div id="results"></div>
于 2012-06-22T12:51:07.857 に答える
0

これを試して

$states = mysql_query("SELECT name FROM list1 WHERE name LIKE '%".mysql_real_escape_strings($partialStates)."%'");

これの代わりに

$states = mysql_query("SELECT name FROM list1 WHERE name LIKE "%$partialStates%"");
于 2012-06-22T12:51:47.913 に答える