предположите, что у меня есть массив JavaScript "имя пользователя".I, хотят загрузить его из таблицы базы данных, названной "пользователем".
Кто-либо может помочь с идеей или примером кода?
Спасибо
Используйте 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)){
эхо "myarray[".$i."] ='".$row['data']."';";
$i++;
}
Вы можете проверить, что массив Js содержит данные :
alert(myarray.length);
надеюсь, что это поможет.
Это создает глобальную переменную 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.
Вам нужно будет использовать функции mysql_connect ()
, mysql_select_db ()
в PHP для подключения к вашей базе данных. После этого используйте mysql_query ()
, чтобы ВЫБРАТЬ поля в вашей пользовательской таблице (если ваша пользовательская таблица имеет имя и идентификатор полей, ВЫБРАТЬ имя, идентификатор ОТ пользователя
). Затем вы можете получить всю информацию из базы данных с помощью mysql_fetch_assoc ()
или любой другой функции выборки mysql. Теперь вам нужно отобразить
ваши данные в 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>
Лучший способ сделать это - просто поместить ваши данные в ваш php-код, а затем «написать» javascript-код для генерации массива на php.
Краткий пример:
echo "a = new Array();";
foreach($row in $results)
{
echo "a[$row[0]] = $row[1];";
}
Мой код может быть совершенно неверным, просто приведу вам краткий пример.
Вы также можете сделать это более элегантно, используя json.