Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 05.11.2017, 23:51   #21
Сэмми
Пользователь
 
Регистрация: 05.11.2017
Сообщений: 19
Репутация: 10
По умолчанию

через Ул-Ли пробовали?
Сэмми вне форума   Ответить с цитированием
Старый 06.11.2017, 00:04   #22
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Спасибо. В общем теперь по клику из списка <li> формируется еще один список <select>, все работает. Но, я хочу сделать, чтобы по выбранному элементу в <select> формировался еще один список <select>.
Тоесть схема работы такая: [Кликаю по списку]-->[Формируется список]-->[Выбираю элемент в новом списке]-->[Формируется еще 1 список].
И я не могу понять как мне это реализовать.
Допустим, я получаю ID элемента в атрибут value в command2.php

Код:

while ($row = $query->fetch()) {
        echo "<option value='{$row->ID}'>{$row->Name}</option>";
    }

И далее этот ID необходимо передать в скрипт:
Код:

           $(function(){
                $(".list").change(function(){
                    var ID=$(".list").val(); // и вот я типа передал

                    $.ajax({
                        type:"POST",
                        url: "select2.php",
                        data:{ID:ID},
                        success:function(data){
                            $(".slave").html(data);  
                        }
                    });
                });
            });

НО, я не понимаю к какому файлу мне подключать этот скрипт, к главному index.php или к command2.php
Если вы меня поняли, то подскажите пожалуйста, как это можно реализовать?

Последний раз редактировалось Kef1r; 06.11.2017 в 00:06.
Kef1r вне форума   Ответить с цитированием
Старый 06.11.2017, 00:35   #23
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,174
Репутация: 986
По умолчанию

Ну у тебя же в index все списки отображаются – там и прописывай обработчик для второго списка.
command2 – это просто формирование и передача второго списка.
А все действия с ним – происходят уже в index.
Andkorol вне форума   Ответить с цитированием
Старый 06.11.2017, 00:46   #24
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ну у тебя же в index все списки отображаются – там и прописывай обработчик для второго списка.
command2 – это просто формирование и передача второго списка.
А все действия с ним – происходят уже в index.
Да, я так сразу и подумал, но проблема в том, что select2.php не получает ID.
А не получает он его скорее всего потому, что ID я получаю в command2.php, а не в index. Вот в этом вся загвоздка. Не могу понять как решить
Kef1r вне форума   Ответить с цитированием
Старый 06.11.2017, 01:08   #25
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,174
Репутация: 986
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
select2.php не получает ID.
А не получает он его скорее всего потому, что ...
Опять 25...
Чего гадать-то – когда в браузере есть консоль и вкладка Network..?
Всё ж легко и просто отдебажить.
Andkorol вне форума   Ответить с цитированием
Старый 06.11.2017, 01:22   #26
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Опять 25...
Чего гадать-то – когда в браузере есть консоль и вкладка Network..?
Всё ж легко и просто отдебажить.
Ну вот смотрите, жму я на первый список, выполняется command2.php и появляется второй список(select). Как это выглядит на вкладке network показано на первом скрине.
Далее выбираю один из элементов списка select и выполняется select2.php. Скрин вкладки network также прикладываю. В консоли ошибок нет.
И какие выводы из этой информации я могу сделать?
Изображения
Тип файла: jpg command2.jpg (62.9 Кб, 0 просмотров)
Тип файла: jpg select2.jpg (59.6 Кб, 0 просмотров)

Последний раз редактировалось Kef1r; 06.11.2017 в 01:24.
Kef1r вне форума   Ответить с цитированием
Старый 06.11.2017, 01:55   #27
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,174
Репутация: 986
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
И какие выводы из этой информации я могу сделать?
Такие, что на втором скрине глазами же видно, что в select2 ID не передаётся.
Это происходит потому, что второй список был добавлен в тело страницы динамически – и поэтому он отсутствует в изначальном DOM-дереве, с которым работает jQuery.
Это значит, что обработать событие с его участием так просто через .change() не получится.
Значит, нужно просто создать функцию, которая будет обращаться к элементам на странице, которые существуют непосредственно на момент её вызова – а не в изначальном DOM страницы.
Объяснять это долго – поэтому вот простой пример для разбора:
index.php:
Код:

<select id="list1" onchange="getList(this.id, 'list2block', 1);">
    <option value="0">-- Select 1 --</option>
    <option value="1">List 1 1</option>
    <option value="2">List 1 2</option>
    <option value="3">List 1 3</option>
</select>

<div id="list2block" style="margin-top: 25px"></div>
<div id="list3block" style="margin-top: 25px"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">

    /**
     * получение связанного списка
     * @param  {[type]} id           ID текущего списка для получения его значения
     * @param  {[type]} target_id    ID элемента, в который будет помещён новый список
     * @param  {[type]} list         контрольный идентификатор текущего списка – для подгрузки различных по структуре или запросам к БД списков
     */
    function getList(id, target_id, list){
        $.post(
            '/lists/select.php',
            {
                list: list,
                ID: $('#'+id).val()
            },
            function(data){
                $('#'+target_id).html(data);
            },
            'html'
        );
    }

</script>

select.php:
PHP код:
<?php
$html 
'No data';
if (!empty(
$_POST['ID']) && ($_POST['list'] == 1)) {
    
$html '<select id="list2" onchange="getList(this.id, \'list3block\', 2)">';
    
$html .= '<option value="0">-- Select 2 --</option>';
    
$html .= '<option value="1">List 2 1</option>';
    
$html .= '<option value="2">List 2 2</option>';
    
$html .= '<option value="3">List 2 3</option>';
    
$html .= '</select>';
}
elseif (!empty(
$_POST['ID']) && ($_POST['list'] == 2)) {
    
$html '<select id="list3">';
    
$html .= '<option value="0">-- Select 3 --</option>';
    
$html .= '<option value="1">List 3 1</option>';
    
$html .= '<option value="2">List 3 2</option>';
    
$html .= '<option value="3">List 3 3</option>';
    
$html .= '</select>';
}
echo 
$html;
?>
Andkorol вне форума   Ответить с цитированием
Старый 06.11.2017, 02:12   #28
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Andkorol, спасибо вам большое за уделенное время на мою проблему. Очень помогли.
Kef1r вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов выпадающего списка. Ankumo JavaScript, Ajax 5 11.07.2016 16:43
Вывод списка на экран Kir94 Паскаль 6 16.10.2015 23:06
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр Gareek Помощь студентам 2 23.12.2011 21:41
DBcomboBox и вывод списка andrenisimus БД в Delphi 4 28.10.2010 16:33
С# вывод списка файлов в директории Айат Помощь студентам 3 28.11.2009 12:43




01:05.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru