Динамический запрос базы данных для проверки значения - PullRequest
0 голосов
/ 29 марта 2009

Мне нужно проверить, есть ли определенное значение "SheetNumber" в моей базе данных mysql динамически. Я видел, как это делается на популярных веб-сайтах, и я пытаюсь найти хороший учебник, чтобы описать его для меня. Я довольно новичок в Javascript, но я знаю много PHP.

Мне очень хочется узнать, как это сделать.

  • Chris

Ответы [ 3 ]

5 голосов
/ 29 марта 2009

Вам нужно будет сделать это с помощью Ajax. Я рекомендую библиотеку Jquery . Установите его, используя документацию Jquery, а затем используйте что-то вроде следующего:

Javascript:

function makeAjaxRequest()
{
   var url="script-that-checks-db.php";
   $.get(url,{},verifyDb);
}

function verifyDb(response)
{
    if (response==1)
    {
       //The value exists, do what you want to do here
    }

    else
    {
      //The value doesn't exist
    }
}

Вы можете вызвать makeAjaxRequest(), когда кто-то щелкает ссылку, нажимает кнопку или что-то еще, например:

<a href="#" onclick="makeAjaxRequest();">Check database</a>

Код php файла script-that-checks-db.php (конечно, назовите его как-нибудь по-другому) будет отвечать за проверку БД. Код будет выглядеть примерно так:

PHP:

<?php

//Do the mysql query and find out if the value exists or not.

if ($exists==true)
   echo "1"; //1 will indicate to javascript that the value exists.
else
   echo "0";
?>

Вы также можете использовать здесь JSON, а не метод 0/1, но поскольку вы новичок, я думаю, это будет достаточно просто для вас.

Надеюсь, это поможет, если у вас есть какие-либо вопросы, не стесняйтесь задавать. Кроме того, не стесняйтесь изменять функцию и имена файлов.

2 голосов
/ 29 марта 2009

Это довольно просто; проверьте документы jQuery по функциям AJAX: jQuery.get ()

Вам потребуется настроить простую службу PHP, которая возвращает необработанные данные, данные в формате XML или JSON, которые затем можно интерпретировать с помощью функции обратного вызова jQuery.

Пример:

function checkData(userInputValue) {
  jQuery.get('ajax-backend.php?value='+userInputValue, false, function(data) { alert('Response from server: ' + data)});
}

Вместо использования alert () для отображения ответа от сервера вы, вероятно, захотите интерпретировать это значение и что-то изменить на странице, указывая, была ли операция успешной.

Вот более подробный пример из предыдущего вопроса: Начало справки jQuery

1 голос
/ 29 марта 2009

Я предполагаю, что под «динамически» вы подразумеваете «не покидая страницу», предлагая решение «AJAX».

Вы не можете получить доступ к своей базе данных с помощью клиентского JavaScript, я рекомендую использовать библиотеку / инфраструктуру JavaScript, например JQuery, для вызова PHP-скрипта «за кулисами», который делает то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...