使用MYSQL数据库数据加载Javascript数组

时间:2010-07-20 09:40:09

标签: php javascript mysql

假设我有一个javascript数组“userName”。我想从名为“user”的数据库表中加载它。

任何人都可以提供想法或示例代码吗?

由于

4 个答案:

答案 0 :(得分:5)

使用ajax和php作为中间人:

  1. 定义一个空的JS数组:

    var myarray = new Array();

  2. 使用ajax调用你的php脚本,javascript将通过PHP评估输出(注意这使用原型库):

     new Ajax.Request('myfile.php', {
    
        onSuccess : function(xmlHTTP) {
    
            eval(mlHTTP.responseText);
        }
    
    });
    
  3. 编写PHP代码以获取数据并打印JS代码(它必须是有效的javscript!):

    $i=0; $q=mysql_query('select ..');
    
    while($row=mysql_fetch_array($q)){               
    
        echo "myarray[".$i."]='".$row['data']."';";
    
        $i++;  
    }
    
  4. 您可以检查您的Js数组是否包含数据:

    alert(myarray.length); 
    
  5. 希望这会有所帮助。

答案 1 :(得分:4)

这会在您的页面中创建一个全局user变量。

<?php
    $user = /* get information from database the way you usually do */;
    // $user == array('id' => 1, 'name' => 'foo', ...);
?>

<script type="text/javascript" charset="utf-8">
    var user = <?php echo json_encode($user); ?>;
</script>

如果您正在寻找动态的AJAXy解决方案,请按照一些关于AJAX的教程进行操作。

答案 2 :(得分:4)

您必须使用PHP中的mysql_connect()mysql_select_db()函数连接到您的数据库。之后,使用mysql_query()来选择用户表中的字段(如果您的用户表具有字段名称和标识SELECT name, id FROM user)。然后,您可以使用mysql_fetch_assoc()或任何其他mysql fetch函数从db获取所有信息。现在您需要将echo您的数据放入您网站上的javascript,格式化为数组。这样做很复杂,但您可以从json_encode获得帮助。

要使用用户名填充数组,您可以执行以下操作。

<html>
    <head>
    <script type="text/javascript">
        var userName = <?php
            // Connect to MySQL
            //mysql_connect();
            //mysql_select_db();
            $d = mysql_query( "SELECT name, id FROM user" ) or die( mysql_error() );
            $usernames = array();
            while( $r = mysql_fetch_assoc($d) ) {
                $usernames[] = $r['name'];
            }
            echo json_encode( $usernames );
        ?>;
        // Do something with the userName array here
    </script>
    </head>

答案 3 :(得分:1)

最简单的方法就是在PHP代码中获取数据,然后“编写”javascript代码以在php中生成数组。

一个简短的例子是:

echo "a = new Array();";
foreach($row in $results)
{
  echo "a[$row[0]] = $row[1];";
}

我的代码可能非常不正确,为您提供一个快速示例,这是很好的。

你也可以使用json以更优雅的方式做到这一点。