На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > PHP + Ajax, JSON, HTML и SQL! Помогите создать правильный запрос к базе данных!
      Добрый день!
      Есть два файла.
      Файл index2.php:
      ExpandedWrap disabled
        <?php
        define('DB_HOST', 'localhost');
        define('DB_USER', 'root');
        define('DB_PASSWORD', '');
        define('DB_NAME', 'mysite');
         
        try {
            $pdo = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME,DB_USER,DB_PASSWORD, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
        } catch (PDOException $e) {
            echo 'Ошибка при подключении к базе данных!';
        }
         
        $query = 'SELECT * FROM `poyas3`';
        $result = $pdo->query($query);
        $table = $result->fetchAll(PDO::FETCH_ASSOC);
        ?>
         
        <!DOCTYPE html>
        <html lang="ru">
        <head>
            <title>Ajax и JSON</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <script type="text/javascript" src="js/jquery-3.5.1.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function() {
                $("select").bind("click", function(event) {
                    ajax({'func': 1});
         
                });
                });
                function ajax(data) {
                    $.ajax({
                        url: 'api2.php',
                        type: "POST",
                        data: data,
                        dataType: "text",
                        error: error,
                        success: success
                    });
                }
         
                function error() {
                    alert('Ошибка при загрузке данных!');
                }
                function success(result) {
                    var result = $.parseJSON(result);
                    var str = '';
                    for (var i in result)
                        str += '<b>' + i + '</b>: ' + result[i] + '<br />';
                    $('#result').empty();
                    $('#result').append(str);
                }
            </script>
        </head>
        <body>
            <div>
         
         
                    <p><select name="list1">
                            <option>Выберите из списка</option>
         
                            <?php foreach($table as $idx => $data) {
                                echo '<option>'.$data['title'].'</option>';
                            }?>
                        </select></p>
         
            </div>
            <div id="result"></div>
        </body>
        </html>

      И файл api2.php:
      ExpandedWrap disabled
        <?php
        if (isset($_POST['func']) && $_POST['func'] == '1') {
         
            //$vibor = $_POST['list1'];
         
            define('DB_HOST', 'localhost');
            define('DB_USER', 'root');
            define('DB_PASSWORD', '');
            define('DB_NAME', 'mysite');
            try {
                $pdo = new PDO('mysql:host=' . DB_HOST . '; dbname=' . DB_NAME, DB_USER, DB_PASSWORD, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
                $query = "SELECT * FROM `poyas3` ORDER BY rand() LIMIT 1";
                $result = $pdo->query($query);
                $row = $result->fetch(PDO::FETCH_ASSOC);
                echo json_encode($row);
            } catch (PDOException $e) {
                echo 'Ошибка: '.$e->getMessage();
            }
        }
        ?>

      Если применять скрипты именно в таком виде, то результатом работы будет вывод на экран данных одной случайной строки из базы данных. В БД poyas3 3 поля: id, title(название часового пояса), offset(смещение по времени).
      Нужно, чтобы при выборе часового пояса из выпадающего списка и нажатии на него на экране появлялось смещение по времени выбранного часового пояса. Пробую, по-разному, не получается.
      Как это сделать?
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0211 ]   [ 15 queries used ]   [ Generated: 28.03.24, 09:47 GMT ]