Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Приветствие по имени (https://javascript.ru/forum/misc/70207-privetstvie-po-imeni.html)

Иляс 19.08.2017 23:00

Приветствие по имени
 
Здравствуйте, пытаюсь сделать чтобы при входе на сайт посетитель заполнил форму с его именем и после чтобы его перекинуло на главную страницу где внутри имеется обращение к нему, Например "Дорогой Дима". Искал в инете, кое-что сделал, но не то. Если ввести Маша то на странице пишет "Дорогой Маша" (думаю может radio сделать чтобы галочку своего пола ставили в той же форме заполнения где имя, но не знаю как) или если оставить поле пустым и нажать ок то пишет "Дорогой null". Заранее всем спасибо!
Вот все что пока смог сделать:

<!DOCTYPE html>
<head>
<title>test</title>
</head>
<body>
<script>
    var name = prompt("Ваше имя?", "");
  </script>
        <h2>Дорогой 
<script>
document.write(name);
</script>
</body>
</html>

j0hnik 20.08.2017 03:54

<html>
<head>
</head>
<body>
<script>
if(localStorage.getItem('userName') == undefined) {
var a =	prompt("Ваше имя?");
localStorage.setItem('userName', a);
}
if(document.location.pathname != '/index.html') top.location = 'index.html';
document.write('Дорогой '+localStorage.getItem('userName')||'друг'); // для index.html
</script>
</body>
</html>

Иляс 20.08.2017 13:44

Спасибо за ответ, но если я правильно понял: я создал новый index.html с вашим содержимым, но почему-то не работает? Не могли бы вы пожалуйста прояснить

j0hnik 20.08.2017 15:49

Такой код должен быть на других страницах с которых нас будет перекидывать.
<html>
<head>
</head>
<body>
<script>
if(localStorage.getItem('userName') == undefined) {
var a =	prompt("Ваше имя?");
localStorage.setItem('userName', a);
}
if(document.location.pathname != '/index.html') top.location = 'index.html';
</script>
</body>
</html>


а вот так index.html
<html>
<head>
</head>
<body>
<script>
document.write('Дорогой '+localStorage.getItem('userName')||'друг'); // для index.html
</script>
</body>
</html>


проверять на сервере, страницы на одном уровне в данном случае

Иляс 20.08.2017 16:52

Круто большое спасибо, вот только если нажать отмена там выдает "Дорогой null" или если просто ничего не вписать то просто "Дорогой". Спасибо

Иляс 20.08.2017 20:23

Можно будет как нибудь в этом случае исправить проблему?

j0hnik 20.08.2017 21:15

<html>
<head>
</head>
<body>
<script>
var a =	prompt("Ваше имя?");
localStorage.setItem('userName', a);
if(document.location.pathname != '/index.html') top.location = 'index.html';
</script>
</body>
</html>


index

<html>
<head>
</head>
<body>
<script>
if(localStorage.getItem('userName')=="null"||localStorage.getItem('userName')=="") document.write('Дорогой друг');
else document.write('Дорогой '+localStorage.getItem('userName'));
</script>
</body>
</html>

Иляс 20.08.2017 22:34

j0hnik огромное человеческое спасибо, я правда не много подкорректировал, но без вашей помощи бы не смог, еще раз спасибо
вот корректировка

<html>
<head>
</head>
<body>
<script>
if(localStorage.getItem('userName')=="null"||localStorage.getItem('userName')=="") top.location = '1.html';
else document.write('Дорогой '+localStorage.getItem('userName'));
</script>
</body>
</html>

Nexus 21.08.2017 09:54

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


Часовой пояс GMT +3, время: 05:03.