2012-06-22 37 views
0

在浏览器的文本框中输入数据时,它应该从数据库中提取数据并相应显示。 (例如:像谷歌)。 这里是我的PHP代码:在php和html上编辑文本过滤器错误

<?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建议我在哪里,我错了....!

+0

有什么错误? –

+0

虽然在文本字段中输入数据,但它并没有从数据库中提取数据 – naveen

回答

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> 
+0

我试过了,但它无法将数据从数据库读取到editext。同时输入edittext – naveen

+0

验证你的'list1'表有合适的数据。使用命令行来运行您的查询以查看检查您的查询是否构建正确。 –

+0

的php代码是正确的。我觉得在html代码中有错误。请建议 – naveen

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%""); 
+0

'“。%'”'应该是'。“%'”'在您的代码末尾 –

+0

我试过但它无法从数据库中将数据提取到editext。同时输入到edittext – naveen

+0

@AaronW。修正了,谢谢 – 2012-06-22 12:59:42