За последние 24 часа нас посетил 23741 программист и 1715 роботов. Сейчас ищут 1624 программиста ...

Как изменить значение тега input после ajax запроса

Тема в разделе "JavaScript и AJAX", создана пользователем sound, 14 апр 2018.

Метки:
  1. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    При нажатии на кнопку вызывается функция в которой есть ajax запрос к БД
    После получения ответа от БД, нужно изменить значение существующего тега input на странице на значение из БД.

    Как это сделать ?
    использовал ajax и грузил результат в div, а как загрузить ответ от ajax запроса в существующий тег input?
     
  2. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    index.php:
    HTML:
    1. <input type="text" id="input">
    2. <input type="button" value="Загрузить значение из БД" id="but">
    Делаем запрос через ajax в name.php:
    Код (Javascript):
    1. $("#but").click(function call() {
    2.     $.ajax({
    3.         url: "name.php",
    4.         type: "POST",
    5.         data: ({ name: $("#input").val() }),
    6.         success: function(data) {
    7.             $('#input').val( data );    // здесь задаете новое значение для инпута
    8.         }
    9.     });
    10. });
    В name.php вытягиваете все что вам нужно из БД. Для примера name.php:
    PHP:
    1. header('Content-Type: text/html; charset=utf-8');
    2. echo 'Значение из БД: '.$_POST['name'];
     
    sound нравится это.
  3. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    работает спасибо!
    Только сразу вопрос а если БД отдает несколько значений и их нужно присвоить разным input
    как тогда ? что должен возвращать name.php и как в ajax функции получить результат ?
     
  4. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    тогда почитай, что такое JSON. Сервер возвращает JSON-строку, на странице ты её распарсиваешь и работаешь
     
    sound нравится это.
  5. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    почитал то что нужно!

    еще вопрос почему то тегу textarea с id=1 не могу присвоить значение
    пробовал так
    Код (Javascript):
    1. $('textarea[id="1"]').val(123);
    и так
    Код (Javascript):
    1. $('textarea#1]').val(123);
    подскажите плз правильный синтаксис для textarea
     
    acho нравится это.
  6. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    ну вообщето id элемента может содержать цифры НО не может НАЧИНАТЬСЯ с цифры
     
    sound нравится это.
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Нету в textarea value есть text innerText
     
  8. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    разобрался с ид теперь все работает

    @nospiou
    выходит есть, по .val() значение меняеться
     
  9. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    Он там есть... нуу... вижу что разобрались
    А вот "innerText" это чистый JS без Jquery, и value у JS, как не странно, тоже есть :)
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
  11. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    да да :) вот и я о чем
    --- Добавлено ---
    Успел прочитать то что вы удалили и я полностью согласен с тем что вы там написали.:cool:
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Вот так живешь себе никого не трогаешь и тут такое озарение и так работает и этак и не подкопаешься)
    Код (Javascript):
    1. $('#test1').text(1);
    2. $('#test2')[0].innerText = 2;
    3. document.getElementById('test3').innerText = 3
    4. $('#test4').val(4);
    5. $('#test5')[0].value = 5;
    6. document.getElementById('test6').value = 6
     
    zlojnaxa нравится это.
  13. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    Отдаленно понимаю как работает, но работает же как-то такая конструкция :), вы понимаете как она работает? Можете объяснить? Приблизительно понятно для чего [0] но ноль у id?, id же может быть только один- это совсем вводит меня в заблуждения. Или это что-то из разряда eq
    Код (Javascript):
    1. $('#test5:eq('+0+')').innerText = 2;
    Но опять же по id он навряд ли будет работать (по id не пробовал)
     
    #13 zlojnaxa, 15 апр 2018
    Последнее редактирование: 15 апр 2018
  14. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Есть классная вещь. Называется console.log($('#test2'))
    Код (Javascript):
    1. const $ = jquery
    2. $() =  // функция
    3. $('#a') // результат работы функции
     
  15. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    @nospiou
    То что выдает консоль ▶0: textarea#test2
    Если я правильно понял то это массив или объект (не знаю как правильно) содержащий в себе всего 1 элемент , так? То есть это:
    Код (Javascript):
    1. $('#test2')[0].innerText = 2;
    эквивалентно этому:
    Код (Javascript):
    1. document.querySelector('textarea#test2').innerText = 2;
    Правильно я понял?
     
  16. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Открой здесь консоль и пропиши
    Код (Javascript):
    1. $("#XenForo")[0] === document.getElementById("XenForo")
    На треугольник можно нажать. И каждое свойство тоже можно законсолить console.log($('#test2')[0])
     
  17. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    С консолью знаю как обращаться.
    то есть в данном случае
    Код (Javascript):
    1. $('#test2')[0].innerText = 2;
    [0] это свойство?
     
  18. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Да. Но как ты сам уже писал выше вызвать его как obj.0 ты не можешь поэтому вызываешь как obj[0]. Как пример obj.test тоже можно вызвать как obj['test']
     
    zlojnaxa нравится это.
  19. zlojnaxa

    zlojnaxa Активный пользователь

    С нами с:
    18 ноя 2015
    Сообщения:
    47
    Симпатии:
    4
    Понял, спасибо за разжевывание :)
     
  20. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759