Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/55: Рейтинг темы: голосов - 55, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 37

При выборе элемента <select> автоматически делать выборку из БД

15.11.2016, 17:02. Показов 10609. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать так, чтоб при выборе пункта из <select> автоматически (без нажатия кнопки) из БД делалась выборка всех полей с этим выбранным значением?

Файл формы:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="POST" action="" enctype="multipart/form-data">
    <table>
    <tr>
        <td>Вид документа <select name='type' id="type" onchange="alert(this.options[this.selectedIndex].value);">
                                                  <option value = "1">Проекты</option>
                                                  <option value = "2">Решения</option>
                              <option value = "3">Распоряжения</option></select></td>
        <td>Документ № <input value="" name="number" type="text"></td>
        <td>Содержание<input value="" name="art_cont" type="text"></td>
        <td>Сессия <select name='session'><option>Внеочередная</option>
                                        <option>1</option>
                                        <option>2</option>
                                        <option>3</option>
                                        <option>4</option>
                                            </select></td>
        <td>Дата создания: <input value="" name="date_art" type="date"></td>
     </tr>
     </table>
        <input name="upfile" type="file">
        <input type="submit" value="Загрузить" class="form button">
</form>
Запрос на добавление нового элемента:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Ошибка.");
    mysql_select_db("mydb",$db);
 
    $resultat = mysql_query("SELECT * FROM `mytable`"); 
    
    if (isset($_FILES["upfile"])){
        $file_name = $_FILES['upfile']['name'];
        $up = move_uploaded_file($_FILES['upfile']['tmp_name'], $file_name); 
            if($up){
                $result = mysql_query ("INSERT INTO `mytable`(`type`, `number`, `art_cont`, `session`, `date_art`, `file_name`) VALUES ('$type', '$number ', '$art_cont', '$session', '$date_art', '$file_name')");
                if($result){
                    echo "<script>window.location.reload(\"true\")</script>";
                }
            }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2016, 17:02
Ответы с готовыми решениями:

При выборе элемента в <select> менять содержимое другого <select>
Может кто-то подсказать. У меня есть select на форме. Например: &lt;select name=day_s size=1&gt; &lt;option value=1&gt; Понедельник &lt;/...

Как сделать так чтобы при выборе значения в select автоматически ставилось это значение в text?
у меня есть select со значениями 1 2 3 и есть text как сделать так чтобы при выборе значения в select автоматически ставилось это...

Функция JS при выборе элемента списка select
Здравствуйте. Не получается запустить функцию при выборе элемента списка select. Есть вот такой код, но он почему-то работает только в...

23
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 37
17.11.2016, 18:00  [ТС]
Студворк — интернет-сервис помощи студентам
fanatikus, да.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
17.11.2016, 18:40
Лучший ответ Сообщение было отмечено Storkfork как решение

Решение

основной файл
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<html>
<head><script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script></head>
<body>
    <?php 
    $db_host = "localhost"; 
    $db_user = "root"; 
    $db_password = ""; 
    $db_table = "mytable";
    
    $type = $_POST['type'];
    $number = $_POST['number'];
    $art_cont = $_POST['art_cont'];
    $session = $_POST['session'];    
    $date_art = $_POST['date_art'];
    
    $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Ошибка.");
    mysql_select_db("mydb",$db);
 
   
    if (isset($_FILES["upfile"])){
        $file_name = $_FILES['upfile']['name'];
        $up = move_uploaded_file($_FILES['upfile']['tmp_name'], $file_name); 
        if($up){
            $result = mysql_query ("INSERT INTO `mytable`(`type`, `number`, `art_cont`, `session`, `date_art`, `file_name`) VALUES ('$type', '$number ', '$art_cont', '$session', '$date_art', '$file_name')");
            if($result){
                echo "<script>window.location.reload(true)</script>";
            }
        }
    }  
    ?>
    <script type="text/javascript">
        $(function(){
            $('#type').change(function(){
                var val = $(this).val(); //значение option
                $.ajax({
                    type:'post',
                    url:'file.php',//пропишите свой путь
                    data:'value='+val,//передаем значение option. на сервере будет доступно $_POST['value'}
                    success:function(result){// получаем ответ с сервера
                        $('#res').html(result);//выводим на стнанице
                    }
                })
            })
        })
    </script>
<form method="POST" action="" enctype="multipart/form-data">
    <table>
        <tr>
            <td>Вид документа 
                <select name='type' id="type">
                    <option>-</option>
                    <option value = "Проекты">Проекты</option>
                    <option value = "Решения администрации">Решения администрации</option>
                    <option value = "Приказы">Приказы</option>
                    <option value = "Распоряжения">Распоряжения</option>
                </select>
            </td>
            <td>Документ № <input value="" name="number" type="text"></td>
            <td>Содержание <input value="" name="art_cont" type="text"></td>
            <td>Сессия 
                <select name='session'>
                    <option>Внеочередная</option>
                    <option>1</option>
                    <option>2</option>
                </select>
            </td>
            <td>
                Дата создания: <input value="" name="date_art" type="date">
            </td>
        </tr>
    </table>
    <input name="upfile" type="file">
    <input type="submit" value="Сохранить" class="form button">
</form>
<div id="res">
    <table border="1px" cellspacing="0">
        <tr>
            <th>Вид документа</th>
            <th>Номер документа</th>
            <th>Сессия</th>
            <th>Дата создания</th>
            <th width='45%'>Содержание</th>
            <th>Дата обновления</th>
        </tr>
        <?php 
        $resultat = mysql_query("SELECT * FROM `mytable`"); 
        while($row = mysql_fetch_array($resultat)) {
            echo "<tr><td align='center'>".$row['type']."</td>";
            echo "<td align='center'>".$row['number']."</td>";
            echo "<td align='center'>".$row['session']."</td>";
            echo "<td align='center'>От ".$row['date_art']."</td>";
            echo "<td><a href='".$row['file_name']."'>".$row['art_cont']."</a><br><br><a href='redag.php?number=".$row['number']."'>Редактировать<img src='postedit.gif' title='Редактировать'></a></td>";
            if ($row['date_new']>0) { 
                echo "<td align='center'>От <a href='".$row['file_new']."'>".$row['date_new']."</a>";
                if ($row['date_new2']>0) {
                    echo "<br>От <a href='".$row['file_new2']."'>".$row['date_new2']."</a>";
                    if ($row['date_new3']>0) {
                        echo "<br>От <a href='".$row['file_new3']."'>".$row['date_new3']."</a></td></tr>";
                    }
                }
            }
            else { 
                echo "<td align='center'>-</td>";
            }
        } 
        ?>
    </table>
</div>
<?php mysql_close($db);?>
</body>
</html>
обработчик
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php 
    $db_host = "localhost"; 
    $db_user = "root"; 
    $db_password = ""; 
    $db_table = "mytable";
    
    $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Ошибка.");
    mysql_select_db("mydb",$db);
?>
<table border="1px" cellspacing="0">
    <tr>
        <th>Вид документа</th>
        <th>Номер документа</th>
        <th>Сессия</th>
        <th>Дата создания</th>
        <th width='45%'>Содержание</th>
        <th>Дата обновления</th>
    </tr>
    <?php
    $value = mysql_query("SELECT * FROM `mytable` WHERE `type` = '".$_POST['value']."'");
    while($grow = mysql_fetch_array($value)) {
            echo "<tr><td align='center'>".$grow['type']."</td>";
            echo "<td align='center'>".$grow['number']."</td>";
            echo "<td align='center'>".$grow['session']."</td>";
            echo "<td align='center'>".$grow['date_art']."</td>";
            echo "<td><a href='".$grow['file_name']."'>".$grow['art_cont']."</a><br><br><a href='redag.php?number=".$grow['number']."'>Редактировать<img src='postedit.gif' title='Редактировать'></a></td>";
        if ($row['date_new']>0) { 
            echo "<td align='center'>От <a href='".$grow['file_new']."'>".$grow['date_new']."</a>";
            if ($grow['date_new2']>0) {
                echo "<br>От <a href='".$grow['file_new2']."'>".$grow['date_new2']."</a>";
                if ($grow['date_new3']>0) {
                    echo "<br>От <a href='".$grow['file_new3']."'>".$grow['date_new3']."</a></td></tr>";
                }
            }
        }
        else { 
            echo "<td align='center'>-</td>";
        }
    }
    ?>
 </table>
Добавлено через 1 минуту
не забудьте прописать свой путь в ajax
1
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 37
18.11.2016, 09:16  [ТС]
fanatikus, спасибо большое, помогли разобраться!
0
0 / 0 / 0
Регистрация: 20.09.2012
Сообщений: 48
14.11.2017, 10:46
Добавлено через 11 минут
fanatikus, Здравстуйте, схожая задача только не с таблицей в со вторым селектом, сделал всё как вы описали, но не работает, подскажите, пожалуйста в чём проблема.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
    /* Template name: Внесение мероприятий */
    
    get_header();
 ?>
<?php 
 
            $host=/*Имя сервера*/
 
    $user=/*Имя пользователя*/
 
    $password=/*Пароль пользователя*/
 
    $db=/*Имя базы данных*/
 
    mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
    
    mysql_query("SET NAMES utf8");
 
    mysql_select_db($db) or die("Нет соединения с БД".mysql_error());
    
    $staff = mysql_query ('SELECT * FROM staff') or die();
    $district = mysql_query ('SELECT * FROM district group by district') or die();
 
    if( isset( $_POST['insert'] ) ) {
        $spec = $_POST['spec'];
        $date = $_POST['date'];
        $district = $_POST['district'];
        $result = mysql_query(
            "INSERT INTO
                `localbase`.`inf`
                (spec, date, district) 
            VALUES
                ('$spec','$date', '$district')"
        );  
 
        if ($result== 'true') {
            echo "Ваши данные успешно добавлены";
        } else {
            echo "Ваши данные не добавлены";
        }   
    }   
?>
 
<head><script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script></head>
<form method="post">
    <br></br>
    <br></br>
    <p> <?php
        echo $querydis;
        ?>
        <b>Сотрудник</b>
            <select name="spec" type="text">
    <?php while ($dropd = mysql_fetch_assoc($staff)) : ?>
        <option> <?php echo $dropd['staff'] ?></option>';
    <?php endwhile ?>
    </select>
    </p>
    <br></br>
    <b>Дата</b>
    <input name="date" type="date">
    <p>
    <br></br>
 
    <p>
        <b>Район</b>
   <select name="district" type="text" id="district">
    <option></option>
    <?php while ($dropd = mysql_fetch_assoc($district)) : ?>
        <option> <?php echo $dropd['district'] ?></option>';
    <?php endwhile ?>
    </select>
        <br></br>
 
 
    <p>
        <b>Школа</b>
   <select name="shcool" type="text" id="shcool">
    <?php while ($dropd = mysql_fetch_assoc($shcool)) : ?>
        <option> <?php echo $dropd['shcool'] ?></option>';
    <?php endwhile ?>
    </select>
        <br></br>
<p><b>Отзыв</b>
    <br>
    <textarea name="dop" cols=200 rows=10 value=></textarea>
    <br></br>
        <p><input type="submit" name="insert" value="Добавить"></p> 
    <br></br>
 
<script type="text/javascript">
$(function(){
        $('#district').change(function(){
            var val = $(this).val(); //значение option
            $.ajax({
                type:'post',
                url:'shcool.php' //пусть к моему файлу обработчику
                data:'district='+val,//передаем значение option. на сервере будет доступно $_POST['value'}
                success:function(result){// получаем ответ с сервера
                    $('#shcool').html(result);//выводим на стнанице
                }
                
            })
            console.log($(this).val());
        })
    })
</script>
 
</form>
Обработчик

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
$host=/*Имя сервера*/
 
    $user=/*Имя пользователя*/
 
    $password=*Пароль пользователя*/
 
    $db=*Имя базы данных*/
 
    mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
    
    mysql_query("SET NAMES utf8");
 
    mysql_select_db($db) or die("Нет соединения с БД".mysql_error());
 
$district1 = $_POST['district'];
$shcool = mysql_query ('SELECT shcool FROM district where district=$district1 order by shcool') or die();
 
?>
        <b>Школа</b>
   <select name="shcool" type="text" id="shcool">
    <?php while ($dropd = mysql_fetch_assoc($shcool)) : ?>
        <option> <?php echo $dropd['shcool'] ?></option>';
    <?php endwhile ?>
    </select>
К базе подключается нормально. Выгружает Район и список сотрудников, а вот с аяксом ничего не происходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2017, 10:46
Помогаю со студенческими работами здесь

Переход на страницу при выборе элемента в select
вот сделал поле со списком &lt;form action=&quot;price.php&quot;&gt; &lt;p&gt;&lt;b&gt;Поиск авто по цене&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;select name=&quot;id&quot;&gt; ...

Вызов метода при выборе элемента списка select
Здравствуйте, уважаемые программисты. Недавно начал изучать MVC, и у меня возник вопрос: есть представление со списком select, и хочется,...

При выборе элемента из select вставлять его в ссылку
есть форма с выбором городов Хочу сделать так чтобы при выборе какого нибудь города. Из тега 'data-code' брался код города и...

Как сменить класс элемента или его id при выборе определенного select
Здравствуйте, в мучительных поисках искал ответ на этот вопрос, но в итоге не нашел его, поэтому решил обратиться сюда. Говорю сразу,...

При выборе какого-то значения в select'e нужно показывать другой select рядом
Здравствуйте, я полный ноль в js, но нужно следующее: На сайте есть разделы. При выборе какого-то значения в select'e нужно показывать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru