Переменная в IMG

Итак, я пытаюсь включить переменную в свой тег IMG, чтобы в основном заменить раздел именем пользователя. При успешном входе в систему я хочу, чтобы он получил имя пользователя, который был успешно аутентифицирован, и заменил это имя пользователя в переменной. Я использую javascript и html. Любые идеи о горячем, я могу этого добиться? Если я вручную установил для img src значение jpg, он отобразится, а остальная часть моего кода будет работать должным образом. Мне просто нужно, чтобы он показывал картинку в зависимости от имени пользователя.

$('form').submit(function () {
    var username = $('#username').val(),
    password = $('#password').val();

    clearMessage();

    if (!username || !password) {
      showMessage('Enter a username and a password');
      return false;
    }


    // Web Proxy request to log the user on
    ajaxWrapper({
      url: 'PostCredentialsAuth/Login',
      dataType: 'xml',
      success: loginSuccess,
      error: loginError,
      data: { username: username, password: password }
    });

function loginSuccess(data) {
        var $loginXml = $(data),
            result = $loginXml.find('Result').text();

        if (result == 'success') {
            $('form').hide();
            $('#log-off').show();
			$('#EmployeePic').show();
    <img id = "EmployeePic" src = "'EmployeePhotos/'+Username+'.jpg'" alt = "EmployeePic" class = "EmployeePic" height = "96" width = "96" >

Как насчет $('#EmployeePic').attr('src', 'EmployeePhotos/'+username+'.jpg');?

muecas 02.05.2018 00:35

А что бы я установил для HTML куска? <img id = "EmployeePic" src = "'EmployeePhotos /' + Имя пользователя + '. jpg'" alt = "EmployeePic" class = "EmployeePic" height = "96" width = "96">

Anthony Zepeda 02.05.2018 00:47

Изображение по умолчанию, которое, возможно, будет заменено изображением пользователя. Зависит от тебя. Вы также можете скрыть изображение, пока пользователь не войдет в систему.

muecas 02.05.2018 01:06

Muecas, попробовал это, но не сработало. В настоящее время я настроил его на отображение изображения в случае успеха. Это то, что делают последние 4 строки кода.

Anthony Zepeda 02.05.2018 01:16

Вы должны сначала скрыть его, чтобы вы могли отобразить его позже. Проверьте мой ответ.

muecas 02.05.2018 01:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала вы можете скрыть свое изображение (я добавил несколько встроенных стилей, но вы также можете сделать это с помощью jQuery: $('#EmployeePic').hide();. Затем, когда пользователь входит в систему, источник изображения изменяется на username.jpg, и изображение отображается.

$('form').submit(function () {
    var username = $('#username').val(),
    password = $('#password').val();

    clearMessage();

    if (!username || !password) {
        showMessage('Enter a username and a password');
        return false;
    }


    // Web Proxy request to log the user on
    ajaxWrapper({
        url: 'PostCredentialsAuth/Login',
        dataType: 'xml',
        success: loginSuccess,
        error: loginError,
        data: { username: username, password: password }
    });

    function loginSuccess(data) {
        var $loginXml = $(data),
            result = $loginXml.find('Result').text();

        if (result == 'success') {
            $('form').hide();
            $('#log-off').show();
            $('#EmployeePic').error(function() {
                $(this).attr('src', 'EmployeePhotos/Default.jpg'); 
            }).attr('src', 'EmployeePhotos/'+$('#username').val()+'.jpg').show();
        }
    }
    
});
<img id = "EmployeePic" src = "" alt = "EmployeePic" class = "EmployeePic" height = "96" width = "96" style = "display: none;">

Так что это почти работает. Все работает хорошо, за исключением того, что имя пользователя из отправленной формы не получается. Если я изменю его на $ ('# EmployeePic'). Attr ('src', 'EmployeePhotos / username.jpg'). Show (); он покажет указанный мной файл. Как только я попробую и позволю ему вытащить имя пользователя из формы, он его не вытянет.

Anthony Zepeda 02.05.2018 01:40

Это странно. Переменная username находится в той же области, что и функция loginSuccess (по крайней мере, в вашем примере). Я изменил его, поэтому он всегда извлекается из ввода формы. Сообщите мне, сработало ли это.

muecas 02.05.2018 01:45

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

muecas 02.05.2018 01:49

Это сработало! Большое спасибо, муэкас! Как побочный вопрос. В настоящее время у меня есть все фотографии на другом файловом сервере, которого здесь нет. Для тестирования я создал папку EmployeePhotos, чтобы заставить это работать. Можно ли получить местоположение из общего ресурса, например \\ share \ employeeephotos?

Anthony Zepeda 02.05.2018 01:56

Я думаю, что будет лучше получить доступ к этим файлам с веб-сервера (может быть веб-сервер в вашей собственной сети). Чтобы получить изображения из этого места, любому компьютеру потребуются права доступа к папке и файлам на сервере. Рад, что мне холодно помогли. Отметьте ответ как правильный, если он решил вашу проблему. Спасибо!

muecas 02.05.2018 02:00

Хорошо, я могу просто настроить скрипт для зеркального отображения папки там, где у меня его нет. И последнее, если у пользователя нет файла в этой папке, есть ли способ по умолчанию использовать стандартный jpb, например Default.jpg, если нет username.jpg?

Anthony Zepeda 02.05.2018 02:02

Если вы хотите протестировать, просто измените сценарий, изменяющий источник изображения, на $('#EmployeePic').attr('src', '\\share\employeephotos\'+$('#username').val()+'.jpg').show(‌​);.

muecas 02.05.2018 02:03

Это сработало! Еще раз спасибо. Ты великолепен. Просто учусь программировать, и вы мне очень помогли.

Anthony Zepeda 02.05.2018 02:15

Другие вопросы по теме