0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 43
1

Подключённый файл js

06.11.2015, 15:19. Показов 713. Ответов 1
Метки нет (Все метки)

Имеется проект (я выложил урезанную версию):
На главной странице - форма с тремя <select>'ами. Только в первом имеются варианты выбора, остальные пустые. При изменении <select>'а скрипты подгружают информацию в следующий, и так далее. Отправку формы я пока не рассмтриваю.

Проблема: Всё работало до тех пор, пока я не вынес js-скрипт с главной страницы в отдельный файл. scripts.js нормально подключается и исполняется, браузерная консоль не сигналит об ошибках. И на изменение селектов скрипт реагирует, но не изменяет содержимое главной страницы - следующий селект.

Структура:

index.php - главная страница с формой:
Кликните здесь для просмотра всего текста

HTML5
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
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <!-- подключение jquery-->
        <meta charset="utf-8">
        <link rel="stylesheet" href="main_page_styles.css">
        <script type="text/javascript" src="scripts.js"></script>
    </head>
 
    <body>  
        
        <?php
            if(isset($_GET["done"]))
                echo $_GET["done"]."<br>";
        ?>
 
        <div id=mainblock>
            <form id=mainform name="mainform" method="post" action="report.php" novalidate>
 
                Учебный городок:
                <select id=campus_pick name=campus >
                    <option data-val=0> </option>
                        <?php
                            require_once ("./php/conn.php");        //скрипт подгружает данные в первый селект
                            try{
                                $sqlquery="select * from 1_campuses";
                                $result=$conn->query($sqlquery);
                                //print_r($result->fetchAll());
                                foreach($result->fetchAll() as $k => $v){
                                    print "<option data-val = ".$v[0]."> ".$v[1]." </option>";
                                }
                            }
                            catch(PDOExeption $e){
                                echo "Error: ".$e->getMessage();
                            }
                        ?>
                </select><br><br>
                
                Адрес:        
                <select id=address_pick name=address ></select><br><br>
                
                Отдел:
                <select id=department_pick name=department ></select><br><br>
 
                <input id=submit type=button value=Ok><br>
 
 
 
        </form>
 
        </div>
        
 
 
    </body>
</html>


main_page_styles.css - стили для главной страницы
Кликните здесь для просмотра всего текста

CSS
1
2
3
4
5
6
7
8
9
10
11
#mainblock{
    height: 400px;
    width: 500px;
    background: #E6F5FF;
    text-align: right;
    margin: auto;
}
select {
    width: 300px;
    margin: right;
}


scripts - скрипты, которые подгружают <case> в теги <select>
Кликните здесь для просмотра всего текста

Javascript
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
function select_change(sqlquery, select_id){    //при изменении селекта отправляется запрос к БД
    $.ajax({                                    //(я вынес его в отдельную функцию для удобства)
        url: "./php/query.php",
        data: "sqlquery="+sqlquery,
        type: "post",
        success: function(html){
            $(select_id).html(html);
        }
    });
}
 
function clean_lower_selects(changed_select){   //функция очищает селекты ниже изменённого 
    switch(changed_select){
        case "#campus_pick":
            $("#address_pick").empty();
            $("#department_pick").empty();
            break;
        case "#address_pick":
            $("#department_pick").empty();
            break;
    }
}
 
//Функции ниже при изменении селекта подгружают данные в селект, который ниже их
 
$(function(){
    $('#campus_pick').change(function(){
        clean_lower_selects("#campus_pick");
        console.log("changed!!\n");
        var query = "select id, address from 2_addresses where campus_id="+$("#campus_pick option:selected").data("val");
        console.log(query);
        select_change(query,"#address_pick");
    });
});
$(function(){
    $('#address_pick').change(function(){
        clean_lower_selects("#address_pick");
        console.log("changed!!\n");
        var query = "select id, department from 3_1_departments where address_id="+$("#address_pick option:selected").data("val");
        console.log(query);
        select_change(query,"#department_pick");
    });
});
 
 
$(function(){
    $("#submit").click(function(){
        ajax({
            url: "./php/report.php",    //этот файл здесь не приводится
            type: "POST",
            data: $("#mainform").serialize(),
            success: function(response){
                alert("Ваша заявка принята!");
            },
            error: function(response){
                alert("Ошибка!");
            }
        });
    });
});


php - папка с php-скриптами:
-conn.php - подключение к БД
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        <?php
 
        $servername="localhost";
        $username="root";
        $password="";
        $dbname="printer_site";
        try{
            $conn=new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8",$username,$password);
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            //$conn->exec("set names utf8");    //для старых версий php
        }
        catch(PDOExeption $e){
            echo "Error: ".$e->getMessage();
        }
 
        ?>


-query.php - вызывается js-скриптами, загружает информацию в <select>'ы
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
        <?php
        require_once("./php/conn.php");
        $sqlquery=$_POST["sqlquery"];
        $result=$conn->query($sqlquery);
        //print_r($result->fetchAll());
        echo "<option data-val=0></option>";
        foreach($result->fetchAll() as $k => $v){
            echo "<option data-val = ".$v[0]."> ".$v[1]." </option> \r\n";
        }
    ?>


Весь проект прилагается снизу
Вложения
Тип файла: zip site.zip (2.8 Кб, 0 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2015, 15:19
Ответы с готовыми решениями:

Почему не работает подключенный JQuery файл
Здравствуйте, уважаемый форумчане Столкнулся с такой проблемой. Я новичок в JS, поэтому не могу...

Не работает подключенный CSS файл
Здравствуйте.Есть код css: &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;../CSS/style.css&quot;/&gt; ...

В OleContainer поместить подключенный уже Excel-файл
Ситуация следующая. Подключаюсь к файлу через OleVariant переменную...

Не правильный путь отправки формы (подключенный PHP файл)
Здравствуйте. Вот фрагмент моего кода с формой ввода имени и пароля. При нажатие на кнопку ...

1
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 43
06.11.2015, 15:44  [ТС] 2
Забыл дописать, я работаю в среде WampServer 2.5,которая содержит:
Apache 2.4.9
php-интерпритатор 5.5.1.2
MySql 5.6.17
и пр.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2015, 15:44

Ошибка при реализации MVC, не находит подключенный файл с классом
И у меня возникла непонятно почему ошибка при прохождении видео Реализация MVC #1...

Как указать чтоб на странице html выполнялся подключенный файл php
Как указать чтоб на странице html выполнялся подключенный файл php &lt;!--#include file=&quot;sendmail.php&quot;...

подключенный код
сама страница &lt;center&gt;Данный логин уже используется&lt;/center&gt; &lt;html&gt; &lt;head&gt; &lt;meta...

Не видит подключенный using
Как такое может быть?

Не распознается подключенный микрофон
В общем, с месяца три назад внезапно перестал работать микрофон в наушниках, что я списал на его...

Не распознается подключенный js скрипт
Добрый день! В Python я новичок, поэтому вопрос возможно элементарный. Есть питоновский скрипт,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.