mrusklon
@mrusklon
если долго мучится - что нибудь получится

Как правильно сделать ajax запрос и запросить данные с БД?

Задачку решаю , есть у меня 2 select , в первый селекс подтягиваются данные из таблицы БД например магазины "Фуршет, Ашан, Простор" , во втором селекте надо сделать "отношение" как бы подкатегорию к магазину, в которой будет например товар аля Хлеб Молоко Бананы . Связи в таблицах я сделал , запрос в БД вот такой $sql = "SELECT * FROM objects WHERE parent_id = 1 ";
нужно в переменную parent_id как то подставить id магазина и без перезагрузки страницы во второй select подставить данные из таблицы

не прошу решение , прошу по логике подсказать как реализовать , например "Надо сделать запрос в бд, запросить то то , затем сделать это и вот это" ))
Спасибо
  • Вопрос задан
  • 32 просмотра
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
<select id = 'shop'>
    <option value = '0'>Фуршет</option>
    <option value = '1'>Ашан</option>
    <option value = '2'>Простор</option>
</select>

<select id = 'cathegory'></select>


$( 'select#shop' ).on( 'change', function() {
    $.post( 'select_cathegory.php', {
      data: { parent_id:  this.value },    //  поразумеваются, что значения для селекта #shop соответствуют parent_id в БД
      success: function( response )  {
         $( 'select#cathegory' ).html( response )
      }
    } )
} )


Код сервера
$result = mysql_query( 'SELECT * FROM objects WHERE parent_id = ' . $_POST[ 'parent_id' ] );
while ( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {
    echo ( '<option value = '. $row[ 'cathegory_id' ].'>'. $row[ 'cathegory_name' ] .'</option>' );
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
on change первого селекта делать аякс запрос с валуе этого селекта, соответственно на сервер придет ид выбранного магазина. По нему делаете запрос в базу и достаете нужные для построения селекта данные, далее либо передаете их обратно в виде JSON и уже на клиенте яваскриптом формируете новый селект, либо прямо в пхп "рисуете" хтмл селекта и отдаете в ответ аяксу, соответственно нужно будет только вставить этот кусок вместо второго селекта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы