Позволь мне предварить этот ответ с моим пониманием вашего вопроса: у вас есть две бок о боке выпадающего меню. Выбор опции в одном приведет к тому, что связанная опция в другой станет текущей. Основываясь на ваших тегах, похоже, что вы создаете полный стек. Это хорошо - это будет отличный опыт для вас.
Давайте посмотрим, что я вижу в качестве возможного решения для вас, назад к фронту, повторяя один или два раза, когда мы строим знакомство с системами.
Нижний нижний слой вот ваша база данных MySQL (на данный момент я предполагаю, что это уже построено, поэтому, если это не так, дайте мне знать, и я добавлю соответствующую информацию к этому ответу). Ваш сайт взаимодействует с этой базой данных через PHP или, точнее, с помощью усовершенствованного расширения PHP MySQL (http://php.net/manual/en/book.mysqli.php).
Первый PHP-скрипт, который вам понадобится, - это тот, который получает данные из базы данных. Я брошу несколько примеров кода за строкой и объясню, что все делает.
$itemID = $_POST["itemID"];
Мы узнаем через минуту, что это данные, связанные с запросом POST для нашего скрипта. Мы будем использовать это, чтобы сообщить нашей базе данных, какую строку мы ищем.
$mydatabase = new mysqli("databaseserver.com", "mysqlusername",
"mysqlpassowrd", "databasename");
Эта линия устанавливает соединение между вашим сайтом (сервером, а не клиентом) и сервером базы данных. Если они размещены на одном компьютере, а MySQL работает на локальном хосте, вы можете поместить localhost в качестве местоположения сервера базы данных.
Далее я предлагаю вам проверить документацию по PHP для функций обработки ошибок. Я не хочу становиться слишком зернистым здесь.
После этого выполните ваш запрос.
$result = $mydatabase->query("SELECT * FROM mytable WHERE itemID = " . strval($itemID));
Здесь $result
имеет тип данных "MySQLi Result." С этим можно справиться больше, но следующий базовый шаг - превратить ваш результат в более дружественные данные. Данные подряда может быть превращен в ассоциативный массив PHP как так:
$row = $result->fetch_assoc();
Есть много других вариантов здесь, так что проверить документы, если этот метод не режет его для вас. Прежде чем «вернуть» эти данные с помощью echo
, вам нужно проанализировать его в более полезной форме. Например, если в вашей таблице MySQL, которую вы запросили, был только один столбец типа INTEGER, и он содержал идентификатор продукта, вы, вероятно, могли бы уйти с $data = $row["productID"]
.
ОЧЕНЬ ВАЖНОЕ ПРИМЕЧАНИЕ: Плохо сконфигурированный PHP является одной из наиболее распространенных уязвимостей в Интернете, особенно в тех случаях, когда задействованы POST (подробнее об этом ниже). Пожалуйста, прочитайте документы и убедитесь, что вы принимаете все соответствующие меры предосторожности. Если вы скопируете и вставьте мой пример сверху, вы будете уязвимы для SQL-инъекции.
Перемещение слоя,, вам необходимо получить эти данные на своем клиентском скрипте (см. Javascript). Чтобы узнать, как это сделать, нам нужно создать резервную копию шага и посмотреть, как был выполнен первоначальный запрос. Я рекомендую использовать jQuery для этого; это просто, это популярно, и это хорошо документировано.
Чтобы запустить этот скрипт PHP, о котором мы только что говорили, вам нужно выполнить какой-то запрос. Основываясь на характере этой настройки, похоже, что это будет POST
. POST
выглядит немного что-то вроде этого в JQuery:
$.post("grabdata.php", {"item":$('#itemID').val()}, function(response){
console.log(response);
document.mydata = response;
}
Эта функция выводит последние echo
из grabdata.php на консоль затем сохранить ответ как свойство вашего document
объекта (в основном делает его глобально доступной) , Есть лучшие способы сделать это, чтобы ваше глобальное пространство было чище, но это делает трюк для моего простого примера. Этот средний кусок между ними - это данные, которые вы отправляете в grabdata.php. В вашем случае вы хотели получить идентификатор продукта с определенным идентификатором товара (?) И наоборот. Это пример односторонней версии этого. Проверьте http://api.jquery.com/jQuery.post/ для более подробной информации.
Верхний слой: дисплей. Эта последняя часть довольно прямолинейная. Теперь, когда у вас есть ID продукта хранится в document.mydata
, все, что вам нужно сделать, это обновление быстрое значение с JQuery:
$('#productID').val(document.mydata);
Пожалуйста, имейте в виду, что я скользил много мелких деталей здесь. Я просто хотел дать обзор того, как работает такая система. Пожалуйста, прочитайте документы, с которыми я связался, и вернусь с более конкретными вопросами.
Удачи вам!
Можете ли вы разместить свой код в своем вопросе? – BRoebie
Помогите мне в кодировании, как динамически извлекать данные из базы данных. –
Ну сначала не используйте функцию 'mysql_ *', поскольку она устарела, используя mysqli_ * или PDO. – BRoebie