将PHP的MYSQL结果插入Javascript数组 [英] Inserting MYSQL results from PHP into Javascript Array

查看:105
本文介绍了将PHP的MYSQL结果插入Javascript数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆