How would you push input text into an array. Then saving it in localStorage.I dont get how you would define the input html code into a variable so i could get a string of text passed on to my array index.
So far I defined my editID as the blogID which is meant to be the correspondant to the index of my array but I only get null, null, null when pressing edit. I think I am on right track it is just how to convert it into text cause I cant seem to figure out how to define input
blogEntries=localStorage.getItem("BlogContent");
blogEntries=JSON.parse(blogEntries);
console.log(blogEntries);
$(document).ready(function(){
var createBlog =
//'<div class="blogContainer">'+
'<div class="blogTitle">'+
'<h1>CREATE BLOG</h1>'+
'<input type="placeholder" class="titleInput">'+
'</div><br>'+
'<div class="blogContent">'+
'<input type="placeholder" class="contentInput">'+
'</div><br>'+
'<div class="blogDate">'+
'<input type="placeholder" class="dateInput">'+
'</div>'+
'<div class="blogControl">'+
'<input type="button" class="create" value="Create">'+
//'</div>'+
'</div>'
$(".createContainer").append(createBlog);
for (var i = 0; i < blogEntries.length; i++) {
var title=blogEntries[i][0];
var content=blogEntries[i][1];
var date=blogEntries[i][2];
var blogID=i;
var blogEdit = '<div class="blogContainer" blogID="'+blogID+'">'+
'<div class="blogTitle"><input type="text" value="'+title+'"class="titelInput"></div>'+
'<div class="blogContent"><input type="text" value="'+content+'"class="contentInput"></div>'+
'<div class="blogDate"><input type="text" value="'+date+'"class="dateInput"></div>'+
'<input type="button" value="edit" class="edit">'+
'<input type="button" value="delete" class="delete">'+
'</div>'+'<br><br><br>'
$("#mainContainer").append(blogEdit);
}
$(".create").click(function(){
var titleCont=$(".titleInput").val();
var contBlog=$(".contentInput").val();
var dateCont=$(".dateInput").val();
createBlogPost(titleCont, contBlog, dateCont);
});
function createBlogPost(title, content, date){
var newBlogPost=[title, content, date];
blogEntries.push(newBlogPost);
var blogEntriesJSON = JSON.stringify(blogEntries);
localStorage.setItem("BlogContent", blogEntriesJSON);
};
$(".delete").click(function(){
var deleteId=$(this).closest(".blogContainer").attr("blogID");
console.log(deleteId);
if(deleteId==0){
blogEntries[0]=[null];
var blogEntriesJSON = JSON.stringify(blogEntries);
localStorage.setItem("BlogContent", blogEntriesJSON);
}
if(deleteId==1){
blogEntries[1]=[null];
var blogEntriesJSON = JSON.stringify(blogEntries);
localStorage.setItem("BlogContent", blogEntriesJSON);
}
if(deleteId==2){
blogEntries[2]=[null];
var blogEntriesJSON = JSON.stringify(blogEntries);
localStorage.setItem("BlogContent", blogEntriesJSON);
}
});
$(".edit").click(function(){
var editId=$(this).closest(".blogContainer").attr("blogID");
var titleCont=$(".titleInput").val();
var contBlog=$(".contentInput").val();
var dateCont=$(".dateInput").val();
// First read from local storage. Take empty array as default value
var blogEntries = JSON.parse(localStorage.getItem("BlogContent"));// || "[]");
// Use editId directly as index. Don't use .value, because .val() above already gives the value.
blogEntries[editId] = [titleCont, contBlog, dateCont];
// Write back to local storage
localStorage.setItem("BlogContent", JSON.stringify(blogEntries));
});
});
Here is pic of the blog I identify the index by clicking one of the three edit buttons that returns the value from 0-2 blogId depening on which post i click.
var blogEntries = localStorage.getItem("BlogContent", blogEntries);
blogEntries=JSON.parse(blogEntries);
$(document).ready(function(){
var blogEntries=[
["Title","Content","Date"],
["Title","Content","Date"],
["Title","Content","Date"]
];
blogEntries=JSON.stringify(blogEntries);
localStorage.setItem("BlogContent", blogEntries);
for (var i = 0; i < blogEntries.length; i++) {
var title=blogEntries[i][0];
var content=blogEntries[i][1];
var date=blogEntries[i][2];
var blogID=i;
var blogPost =
'<div class="blogContainer" blogID="0">'+
'<div class="blogTitle">'+title+'</div>'+
'<div class="blogContent">'+content+'</div>'+
'<div class="blogDate">'+date+'</div>'+
'</div>'+'<br><br><br>'
//var blogPost = '<div class="blogContainer" blogID="'+blogID+'">'+mitVarIndhold+'</div>';
//$(".blogContainer").append(title, content, date);
$("#mainContainer").append(blogPost);
}
edit included all of my two js documents I outcomment the array and localstorage after saving it so it wont genrate tons of posts.
