假设我有一个javascript数组“userName”。我想从名为“user”的数据库表中加载它。
任何人都可以提供想法或示例代码吗?
由于
答案 0 :(得分:5)
使用ajax和php作为中间人:
定义一个空的JS数组:
var myarray = new Array();
使用ajax调用你的php脚本,javascript将通过PHP评估输出(注意这使用原型库):
new Ajax.Request('myfile.php', {
onSuccess : function(xmlHTTP) {
eval(mlHTTP.responseText);
}
});
编写PHP代码以获取数据并打印JS代码(它必须是有效的javscript!):
$i=0; $q=mysql_query('select ..');
while($row=mysql_fetch_array($q)){
echo "myarray[".$i."]='".$row['data']."';";
$i++;
}
您可以检查您的Js数组是否包含数据:
alert(myarray.length);
希望这会有所帮助。
答案 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以更优雅的方式做到这一点。