mrusklon
@mrusklon

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

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

не прошу решение , прошу по логике подсказать как реализовать , например "Надо сделать запрос в бд, запросить то то , затем сделать это и вот это" ))
Спасибо
  • Вопрос задан
  • 30 просмотров
Решения вопроса 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 и уже на клиенте яваскриптом формируете новый селект, либо прямо в пхп "рисуете" хтмл селекта и отдаете в ответ аяксу, соответственно нужно будет только вставить этот кусок вместо второго селекта.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
22 янв. 2019, в 00:48
60 руб./за 1000 зн.
22 янв. 2019, в 00:09
120000 руб./в месяц
21 янв. 2019, в 23:37
1000 руб./за проект