Ada*_*rst 7 javascript php mysql arrays
我正在尝试使用javascript中的trie在私人网站上创建一个非常简单的自动完成功能.问题是我看到的例子和尝试只是在javascript数组中使用预定义列表.
例如. var arrayObjects = ["Dog","Cat","House","Mouse"];
我想要做的是使用PHP检索MYSQL结果并将它们放入javascript数组中.
这是我到目前为止的PHP(Javascript很好只需要填充数组):
<?php
$mysqli = new mysqli('SERVER', 'U/NAME', 'P/WORD', 'DB');
if (!$mysqli)
{
die('Could not connect: ' . mysqli_error($mysqli));
}
if ($stmt = $mysqli->prepare("SELECT category.name FROM category")) {
$stmt->bind_result($name);
$OK = $stmt->execute();
}
while($stmt->fetch())
{
printf("%s, ", $name);
}
?>
Run Code Online (Sandbox Code Playgroud)
然后我想使用像mysql_fetch_array($ name)这样的东西插入基本上每个值; (我知道这是不正确的,但只是为了告诉你们我们脑子里的事情发生了什么)
<script> -- this is the javascript part
(function() {
<?php while $stmt=mysql_fetch_array($name))
{
?>
var arrayObjects = [<?php stmt($name) ?>];
<?php }
?>
Run Code Online (Sandbox Code Playgroud)
我可以检索结果回显精细,我可以操纵trie罚款没有MYSQL结果,我只是不能把它们放在一起,任何帮助将不胜感激,如果我走错了方向,请告诉我.
谢谢,
亚当
Max*_*Max 10
首先,java和之间存在非常大的差异javascript:-)现在,在这种情况下,您正在做的是循环遍历结果数组,并且每次打印出行时var arrayObjects = [<?php stmt($name) ?>];.但是,这不会在您获得的PHP数组和javascript数组之间进行转换.
既然你开始这样做,你可以这样做:
<?php
//bind to $name
if ($stmt = $mysqli->prepare("SELECT category.name FROM category")) {
$stmt->bind_result($name);
$OK = $stmt->execute();
}
//put all of the resulting names into a PHP array
$result_array = Array();
while($stmt->fetch()) {
$result_array[] = $name;
}
//convert the PHP array into JSON format, so it works with javascript
$json_array = json_encode($result_array);
?>
<script>
//now put it into the javascript
var arrayObjects = <?php echo $json_array; ?>
</script>
Run Code Online (Sandbox Code Playgroud)
用于json_encode将 PHP 数组转换为有效的 javascript 对象。例如,如果您从数据库中获取了名为 php 数组的结果$array:
var obj = "<?php echo json_encode($array); ?>";
Run Code Online (Sandbox Code Playgroud)
obj您现在可以在 javascript 代码中使用