Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2019, 15:42
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

Селектор по нескольким атрибутам
Прошу помочь разобраться в селекторах. Имеется страница, возвращённая с сервера, в которой есть 10, 20, 30... одинаковых блоков. В двух словах - php, foreach, include...
<form action="tempOffStatus" method="post">
            <input type="hidden" name="row" value="<?=$item_r['id'];?>">
            <select id="tempOffChangeStatus" rel="<?=$item_r['id'];?>">
                <option value="0" <? if($item_r['tempOff'] == 0): ?> selected <?endif;?>> есть в наличии </option>
                <option value="1" <? if($item_r['tempOff'] == 1): ?> selected <?endif;?>> нет в наличии </option>
            </select>
        </form>


Все блоки одинаковые, но параметр rel=<?=$item_r['id'];?> в каждом блоке уникальный.

Нужно select-ом менять значения в каждом конкретном блоке.
<script>
    $(document).ready(function(){
        $("#tempOffChangeStatus").change(function(){

            var rel = $(this).attr("rel");
            var offStatus = $("#tempOffChangeStatus + rel :selected").val();


Т.е. переменная offStatus должна относиться к одному блоку, а не ко всем сразу. Я так понимаю, что селектор в JS должен быть составным. Из двух частей. Где то я с синтаксисом намудрил, что ли.
Может кто-нибудь помочь в грамотном оформлении, а то с JS я не очень ...

ЗЫ. То, что в моём примере здесь, это у меня уже крыша поехала, тыкал всё подряд...
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2019, 16:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

То есть задача при выборе в списке занести его значение в скрытое поле? Если да, то нафига оно вообще нужно это поле?
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2019, 16:45
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Атрибут id замените на атрибут class...
<form action="tempOffStatus" method="post">
            <input type="hidden" name="row" value="<?=$item_r['id'];?>">
            <select class="tempOffChangeStatus" rel="<?=$item_r['id'];?>">
                <option value="0" <? if($item_r['tempOff'] == 0): ?> selected <?endif;?>> есть в наличии </option>
                <option value="1" <? if($item_r['tempOff'] == 1): ?> selected <?endif;?>> нет в наличии </option>
            </select>
        </form>


В скрипте соответственно #tempOffChangeStatus замените на .tempOffChangeStatus
<script>
    $(document).ready(function(){
        $(".tempOffChangeStatus").change(function() {

            var rel = $(this).attr("rel");
            var offStatus = $(this).val();

Я правильно думаю, что вы значение переменной offStatus не собираетесь записывать в то скрытое поле?

Последний раз редактировалось Malleys, 31.07.2019 в 16:51.
Ответить с цитированием
  #4 (permalink)  
Старый 31.07.2019, 16:46
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

Если речь об input-е, то оно лишнее. Оно не нужно, я его уберу. В JS будет ajax запрос в php модель. И дальше обновление в базу данных. Там уже всё настроено и работает.
Ответить с цитированием
  #5 (permalink)  
Старый 31.07.2019, 16:50
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

Теперь всё работает! Спасибо большое!!!!!
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2019, 16:57
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

Ещё вопрос в догонку. Как взять результаты только первой инерации средствами JS? Ибо в теле страницы у меня столько блоков, сколько записей в БД. И перебор массива возвращается из php.
Ответить с цитированием
  #7 (permalink)  
Старый 31.07.2019, 17:12
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от nGreg
В JS будет ajax запрос
Такого не существует, вы наверное имели в виду, например, POST запрос... https://developer.mozilla.org/ru/docs/Web/HTTP/Methods

Сообщение от nGreg
Как взять результаты только первой инерации средствами JS?
Вы имеете в виду первый попавший .tempOffChangeStatus? Можно так...
$(".tempOffChangeStatus").first()
Ответить с цитированием
  #8 (permalink)  
Старый 31.07.2019, 17:22
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

Да. Именно POST запрос. Там всё в порядке.

Вы имели ввиду так:

$(document).ready(function(){
$(".tempOffChangeStatus").first().change(function( ){

var rel = $(this).attr("rel");
var offStatus = $(this).val();

В таком виде ничего не происходит.
Ответить с цитированием
  #9 (permalink)  
Старый 31.07.2019, 17:24
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от nGreg
Вы имели ввиду так
Да, если вам нужно именно первое .tempOffChangeStatus и чтобы на нём был обработчик события...
Ответить с цитированием
  #10 (permalink)  
Старый 31.07.2019, 17:27
Аспирант
Отправить личное сообщение для nGreg Посмотреть профиль Найти все сообщения от nGreg
 
Регистрация: 09.06.2017
Сообщений: 49

В таком виде почему то не работает...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка по нескольким атрибутам lancer jQuery 9 24.07.2013 13:46
backbone запрос по нескольким атрибутам dimanlin Библиотеки/Тулкиты/Фреймворки 0 20.05.2012 15:20
Селектор по атрибутам Kaba jQuery 4 20.04.2012 12:55
Динамический селектор raindew Элементы интерфейса 3 20.11.2011 18:37
Предыдущий селектор KupueIIIKo jQuery 1 05.10.2011 01:27