Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2017, 12:29   #11
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
но тут дело опять в том, что ID не передается в command2.php
«Не выполняется событие click» и «ID не передается в command2.php» – это совершенно разные проблемы.
Повторюсь: смотри в консоль браузера, проверь вкладку Network (статус запроса, заголовки запроса, параметры, ответ сервера) – ответ есть, и он где-то там.
В $.ajax не помешает указать параметр dataType.
И вообще там много полезных параметров: http://api.jquery.com/jquery.ajax/
Неохота с ними париться – используй $.post, проще в этом плане.
Andkorol вне форума Ответить с цитированием
Старый 05.11.2017, 12:37   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
Вот, если что, полный код на данный момент:
PHP:
Код:
<ul class="tree">
          
        <?php  
            $query=$db->query("SELECT DISTINCT `Name` FROM `dbdeviceuniversalitem` WHERE `ParentType`=59");
            while ($row=$query->fetch())
            {
            echo "<li ><span id='{$row->ID}'>".$row->Name."</span></li>";
            }
        ?>
 
        </ul>
Script:
Код:
$(function(){
$(".tree li span").click(function(){
    var ID=$(this).attr("id");

    $.ajax({
        type:"POST",
        url: "command2.php",
        data:{ID:ID},
        success:function(data){
            $(".list").html(data);
        }
        });
    });
 });
А где в твоём «полном коде на данный момент» элемент с классом list – в который должен размещаться ответ сервера?
И почему в command2.php в случае наличия ID возвращается нормальный список <select> – а в случае отсутствия ID возвращается тупо голый <option>, без самого «тела» списка?
Как браузеру отображать на странице такой элемент?
В общем, как код написан – так он и «работает»
Andkorol вне форума Ответить с цитированием
Старый 05.11.2017, 12:38   #13
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Повторюсь: смотри в консоль браузера, проверь вкладку Network (статус запроса, заголовки запроса, параметры, ответ сервера) – ответ есть, и он где-то там.
Так я и смотрю на вкладку Network после клика, там выполняется command2.php, который возвращает
Код:
<option value='0' disabled>Выберите объект</option>
тоесть условие elsе
Параметр dataType установил в html :
Код:
dataType : "html"
А что насчет $.post, разве при его использовании страница не будет перезагружаться? Мне бы этого не хотелось.
Kef1r вне форума Ответить с цитированием
Старый 05.11.2017, 12:40   #14
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
А где в твоём «полном коде на данный момент» элемент с классом list – в который должен размещаться ответ сервера?
Прошу прощения, код действительно полный в кавычках, чуть ниже у меня расположен:
Код:
<span  name=objectlist class="list">
  
    </span>
Kef1r вне форума Ответить с цитированием
Старый 05.11.2017, 12:53   #15
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
А что насчет $.post, разве при его использовании страница не будет перезагружаться?
С чего бы это?
Во вкладке Network при клике по запросу отображаются его детали: заголовки, параметры и т.д.
Там есть в параметрах запроса ID?
Переадресации никакой нет (типа с http на https)?
Сделай скриншот вкладки Network с запросом к command2.php и последующими за ним + детали запроса.
В начале обработчика добавь var_dump($_REQUEST);
Andkorol вне форума Ответить с цитированием
Старый 05.11.2017, 13:15   #16
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Сделай скриншот вкладки Network с запросом к command2.php и последующими за ним + детали запроса.
В начале обработчика добавь var_dump($_REQUEST);
Вот скриншоты с вкладки Network: вкладки "Headers", "Preview" и "Response"
Изображения
Тип файла: jpg headers.jpg (74.6 Кб, 114 просмотров)
Тип файла: jpg Preview.jpg (48.3 Кб, 121 просмотров)
Тип файла: jpg Response.jpg (50.8 Кб, 121 просмотров)
Kef1r вне форума Ответить с цитированием
Старый 05.11.2017, 14:06   #17
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Какая же глупая ошибка, что аж жить перехотелось.
Все дело было в запросе
Если он такой:
Код:
$query=$db->query("SELECT DISTINCT `Name` FROM `dbdeviceuniversalitem` WHERE `ParentType`=59");
То
Код:
<span id='{$row->ID}'>
Не может получить ID.
Если же выводить все
SELECT * ....
То все работает.
Kef1r вне форума Ответить с цитированием
Старый 05.11.2017, 15:58   #18
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Прекрасно...
Если таки нужно/желательно использовать возможности DISTINCT `Name` – то для этого случая просто нужно добавить в запрос и ID:
SELECT DISTINCT `Name`, `ID` FROM `dbdeviceuniversalitem` WHERE `ParentType`=59
Andkorol вне форума Ответить с цитированием
Старый 05.11.2017, 21:25   #19
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Прекрасно...
[/I]
У меня еще один вопрос, если вас не затруднит.
Как можно передать значение атрибута value='{$row->ID}' в переменную?
Код:
 echo "<select size='15' name='list'>";
        echo "<option value='0'>Выберите объект</option>";
    while ($row = $query->fetch()) {
        echo "<option value='{$row->ID}'>{$row->Name}</option>";
    }
    echo "</select>";
Kef1r вне форума Ответить с цитированием
Старый 05.11.2017, 22:01   #20
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Kef1r Посмотреть сообщение
У меня еще один вопрос, если вас не затруднит.
Как можно передать значение атрибута value='{$row->ID}' в переменную?
Я не особо спец в JS – но вроде как-то так примерно:
Код:
var listValue = $('select[name=list]').val();
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



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