Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建自动建议文本框时PHP和Javascript出现问题_Javascript_Php_Jquery_Mysql - Fatal编程技术网

构建自动建议文本框时PHP和Javascript出现问题

构建自动建议文本框时PHP和Javascript出现问题,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我正在尝试构建一个简单的自动建议输入栏,它连接到MySql数据库并检索数据。我遇到的问题是,当我输入一个我知道存在于数据库中的对象的名称时,文本栏不会返回任何结果,而只是为我提供一个空的下拉框 据我所知,这个问题与代码PHP部分中使用的javascript有关。不幸的是,我似乎不明白它为什么会引起问题 <?php mysql_connect("host", "user", "passsword") OR DIE ('Unable to connect to database

我正在尝试构建一个简单的自动建议输入栏,它连接到MySql数据库并检索数据。我遇到的问题是,当我输入一个我知道存在于数据库中的对象的名称时,文本栏不会返回任何结果,而只是为我提供一个空的下拉框

据我所知,这个问题与代码PHP部分中使用的javascript有关。不幸的是,我似乎不明白它为什么会引起问题

    <?php
    mysql_connect("host", "user", "passsword") OR DIE ('Unable to connect to database! Please try again later.');
    mysql_select_db('DBName');
    $query = 'SELECT Device_type FROM Device';
    $result = mysql_query($query);
    $counter = 0;
    echo"<script type='text/javascript'>";
    echo"this.nameArray = new Array()";
    if($result) {
        while($row = mysql_fetch_array($result)) {
            echo("this.nameArray"  .$row ['Device_type'] . "';");
            $counter += 1;
        }
    }
    echo("</script>");
    ?>

关于为什么我开始打字时建议框不提供建议,有什么建议吗?如果我在文本框中键入
A
,则会出现建议框,显示数据库中以
A
开头的所有项目。您的js字符串中有一些错误

 `echo"var nameArray = new Array()";`
 `echo("nameArray.push('"  .$row ['Device_type'] . "');");`

这样,你就可以将设备类型推到nameArray变量中。

看看这个,它可以帮助你。它可能会秘密地告诉你不要再使用
mysql\u*
,有一天早上,你醒来时会发现,你的网站由于黑客攻击或遭到攻击而无法正常工作。@guradio我确实看到过这一点,并讨论了这个方向,但我正在寻找可以连接到数据库的东西,因为我可能需要将大块数据上载到后端。嗯,按照建议进行了更改,但仍然存在相同的问题。请从
中删除
,同时(计数器
并在
var x=this.nameArray[counter]上执行相同的操作;
仍然具有相同的结果。我从两行中删除了它。关于它可能是什么,还有其他想法吗?
 `echo"var nameArray = new Array()";`
 `echo("nameArray.push('"  .$row ['Device_type'] . "');");`