Загрузите массив JavaScript данными базы данных MYSQL

предположите, что у меня есть массив JavaScript "имя пользователя".I, хотят загрузить его из таблицы базы данных, названной "пользователем".

Кто-либо может помочь с идеей или примером кода?

Спасибо

7
задан Rony 20 July 2010 в 09:40
поделиться

4 ответа

Используйте 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)){ 
    
    эхо "myarray[".$i."] ='".$row['data']."';";
    
    $i++; 
    }
    
  4. Вы можете проверить, что массив Js содержит данные :

    alert(myarray.length); 
    

надеюсь, что это поможет.

4
ответ дан 6 December 2019 в 19:32
поделиться

Это создает глобальную переменную 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.

4
ответ дан 6 December 2019 в 19:32
поделиться

Вам нужно будет использовать функции 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>
4
ответ дан 6 December 2019 в 19:32
поделиться

Лучший способ сделать это - просто поместить ваши данные в ваш php-код, а затем «написать» javascript-код для генерации массива на php.

Краткий пример:

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

Мой код может быть совершенно неверным, просто приведу вам краткий пример.

Вы также можете сделать это более элегантно, используя json.

1
ответ дан 6 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: