Получение информации с сервера для гаджета (Vista / 7) - PullRequest
3 голосов
/ 28 января 2010

Привет всем ..
Я хочу получить некоторую информацию из своей базы данных и показать в моем гаджете боковой панели (я новичок в кодировании гаджетов). Я пробовал много способов сделать это, но мне пока не удалось.
Для этого я подготовил php-файл, чтобы получить некоторые значения из моей базы данных (на сервере), и я хочу получить содержимое (результаты) этого php-файла.

Я не хочу использовать iframe из-за визуальности.

На самом деле, я могу следовать любому способу сделать это. Такие как;
Получение данных непосредственно из базы данных (с проблемами безопасности), получение указанного текста из php (значения, которые помещаются в специальные div) или получение всего содержимого php и стиля в боковую панель с / без методов GET, POST или чем-то еще:)
Спасибо, прямо сейчас ...

ПРИМЕЧАНИЕ : я знаю (полупрофессионально) PHP, JavaScript, CSS, но я не знаю C #, VB и т. Д.

1 Ответ

1 голос
/ 01 февраля 2010

Есть несколько способов получить доступ к данным. Первый - использование ADO, COM-объекта, встроенного в Windows, который может подключаться к базам данных У этого метода есть несколько недостатков, наиболее важным из которых является то, что он не очень безопасен - имя пользователя и пароль вашей базы данных должны быть сохранены в виде простого текста в файле сценария гаджета, чтобы каждый мог их увидеть. Это не так плохо с ограниченными разрешениями.

Большинство разработчиков будут использовать комбинацию PHP и XMLHttpRequest(). PHP будет получать данные из базы данных по запросу, как вы сами предложили. XMLHttpRequest - это то, что используется для извлечения содержимого страницы. Вам нужно только решить, в каком формате выводить данные; XML, JSON или что-то еще. XML и JSON могут быть проанализированы вашим гаджетом, поэтому любой из них является отличным выбором. Если вы используете PHP 5.2 или более позднюю версию, то Поддержка JSON является нативной . Достаточно просто получить данные из базы данных в виде ассоциативного массива, а затем json_encode и распечатать результат.

Пример XMLHttpRequest

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://mysite.com/test.php", true);
xhr.onreadystatechange = function ()
{
    // readyState 4 = complete, status 200 = HTTP OK
    if (xhr.readyState == 4 && xhr.status == 200)
    {
        parseData(JSON.parse(xhr.responseText)); // parse a JSON response
        // parseData(xhr.responseXML); // parse an XML response
    }
}
xhr.send();

Гаджеты, работающие на машинах с установленным IE8, могут использовать JSON.parse() изначально, предварительно IE8 потребуется либо eval() данные, либо запустить их через безопасный анализатор (большинство из которых eval после проверки правильности данных JSON) ).

Больше чтения:

Объект XMLHttpRequest (MSDN)
JSON в JavaScript

...