将PHP的MYSQL结果插入Javascript数组 [英] Inserting MYSQL results from PHP into Javascript Array
问题描述
我正在尝试使用javascript中的trie在私人网站上创建一个非常简单的自动完成功能。问题是我看到的例子和尝试只是在javascript数组中使用预定义列表。
I'm trying to make a very simple auto-complete function on a private website using a trie in javascript. Problem is the examples I have seen and trying are just using a predefined list in a javascript array.
例如。 var arrayObjects = [Dog,Cat,House,Mouse];
什么我想要做的是使用PHP检索MYSQL结果并将它们放入一个javascript数组。
What I want to do is retrieve MYSQL results using PHP and put them into a javascript array.
这就是我到目前为止所用的PHP(Javascript很好只需要填充数组):
This is what I have so far for the PHP (the Javascript is fine just need to populate the array):
<?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);
}
?>
然后我想使用mysql_fetch_array($ name)之类的东西插入基本上每个值; (我知道这是不正确的,但只是为了向你们展示我脑子里的事情)
Then I want to insert essentially each value using something like mysql_fetch_array($name); (I know this is incorrect but just to show you guys whats going on in my head)
<script> -- this is the javascript part
(function() {
<?php while $stmt=mysql_fetch_array($name))
{
?>
var arrayObjects = [<?php stmt($name) ?>];
<?php }
?>
我可以检索出结果很好的回复,我可以操纵trie罚款没有MYSQL结果,我只是不能把它们放在一起,任何帮助都会非常感激,如果我对它采取完全错误的方式,请告诉我。
I can retrieve the results echoing out fine, I can manipulate the trie fine without MYSQL results, I just can't put them together, any help would be greatly appreciated and if I am going the completely wrong way about it please let me know.
谢谢,
Adam
推荐答案
首先,<$ c $之间存在很大差异c> java 和 javascript
:-)
现在,在这种情况下,你正在做的是循环遍历结果数组,每次打印出行 var arrayObjects = [<?php stmt($ name)?>];
。但是,这不会在您获得的PHP数组和javascript数组之间进行转换。
Firstly, there is a VERY big difference between java
and javascript
:-)
Now, in this case, what you're doing is looping through your result array, and each time you're printing out the line var arrayObjects = [<?php stmt($name) ?>];
. However this doesn't convert between the PHP array you're getting as a result, and a javascript array.
由于您开始这样做,您可以执行以下操作:
Since you started doing it this way, you can do:
<?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>
这篇关于将PHP的MYSQL结果插入Javascript数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!