Reputation: 167
I'm trying to print the cookies that I have stored. For example, if I enter John Smith then it should look like:
Welcome John Smith
However, when it prints it looks like this:
Welcome firstname=John lastname=Smith
I don't know how to get rid the cookiename and the sign =
. I tried to use substring string, but it only prints firstname= then the actual name is discarded.
<form method="post" onsubmit="return savecookies()" autocomplete="on">
<div class="sep">
<h1 class="header">Welcome <span id="greetings"></span></h1>
</div><br> Firstname
<br>
<input type="text" name="fname" id="fname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter first name" autofocus><br> Lastname
<br>
<input type="text" name="lname" id="lname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter last name"><br>
<input type="submit" onclick="savecookies(); return false;" value="Submit">
</div>
</form>
function savecookies() {
var fname = document.getElementById("fname").value;
setCookie("firstname", fname, 1);
var lname = document.getElementById("lname").value;
setCookie("lastname", lname, 1);
}
function setCookie(cookieName, cookieValue, length) {
var date = new Date();
date.setTime(date.getTime() + (length * 24 * 60 * 60 * 1000));
var expires = "expires=" + date.toGMTString();
document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/";
}
function getCookie() {
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
var msg = "";
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
}
var msg = ca[1] + " " + ca[2];
document.getElementById("greetings").innerHTML = msg;
return "";
}
Upvotes: 2
Views: 338
Reputation: 311
See, this work in Firefox and Safari
<form >
<div class="sep">
<h1 class="header">Welcome <span id="firstname"></span> <span id="lastname"></span></h1>
</div><br>
<br>
<input type="text" name="fname" id="fname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter first name" autofocus><br> Lastname
<br>
<input type="text" name="lname" id="lname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter last name"><br>
<input type="button" onclick="savecookies();" value="save and show">
</div>
</form>
<script>
function savecookies() {
var fname = document.getElementById("fname").value;
setCookie("firstname", fname, 1);
var lname = document.getElementById("lname").value;
setCookie("lastname", lname, 1);
loadCookie();
}
function loadCookie()
{
document.getElementById("firstname").innerHTML = getCookie("firstname");
document.getElementById("lastname").innerHTML = getCookie("lastname");
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
</script>
Upvotes: 3