Ajax php搜索中的错误

时间:2012-06-27 12:25:05

标签: php ajax

在下面基于Ajax的搜索框中,如果字符位于位置0,则数组中的相应名称不会返回,但对于其他位置的字符,一切都运行良好。请解决这个问题......

PHP

$query = $_GET['query'];

$names = array('abc', 'hello', 'cool', 'fun', 'demo', 'test');
foreach($names as $name)
{
$str = strpos($name, $query);

if(!empty($str))
{
    echo "$name ";

}

}

HTML

<form name='myForm'>
Name: <input type='text' onblur="ajaxFunction(this.value);" name='username' /> <br />
Time: <input type='text' disabled="disabled" name='time' />
</form>

AJAX

function ajaxFunction(val) {
var ajaxRequest;

try {
    //Opera, Safari and Firefox xml object
    ajaxRequest = new XMLHttpRequest(); 
} catch(e) {
    try {
        //Internet Explorer xml object
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            //Old browser's xml object
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");                   
        } catch(e) {
            return false;
        }
    }

}

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        document.myForm.time.value = ajaxRequest.responseText;
    } else {
        //do nothing
    }
}
ajaxRequest.open("GET", "names.php?query="+val, true);
ajaxRequest.send(null); 
}

2 个答案:

答案 0 :(得分:1)

这可能是strpos返回的0值(它返回一个整数)...我的意思是“if”语句可以将其值为false。

尝试比较

if(strpos($name, $query) === false){ .... do something..... }

答案 1 :(得分:1)

您可以使用以下内容 -

if($str !== FALSE)
{
   echo "$name ";
}