JavaScript не работает? Понятия не имею почему

Извините, я не мог более подробно остановиться на моей проблеме, но я не вижу никаких проблем. две функции save() а также load() бегать по клику

<button onclick="save()">save</button>
<button onclick="load()">load</button>

Код предназначен для захвата значения всех входов и save это на локальное хранение. Затем наload добавить сохраненные данные обратно в поля формы

Я новичок в php и JavaScript, поэтому он может выглядеть немного грязно, но это потому, что я «генерирую» это через массив php и цикл (массив изменяется в зависимости от выбранной опции)

//спасти

function save() {
if (typeof(Storage) != "undefined") {
var seometatitle = document.getElementById("seo_meta_title").value;
saveData(seometatitle);

function saveData(xseometatitle) {
localStorage.setItem("seometatitle", xseometatitle);
}
}

var seometadescription = document.getElementById("seo_meta_description").value;
saveData(seometadescription);

function saveData(xseometadescription) {
localStorage.setItem("seometadescription", xseometadescription);
}
}

var header = document.getElementById("header").value;
saveData(header);

function saveData(xheader) {
localStorage.setItem("header", xheader);
}
}

var pagetext = document.getElementById("page_text").value;
saveData(pagetext);

function saveData(xpagetext) {
localStorage.setItem("pagetext", xpagetext);
}
}

var linkurl = document.getElementById("link_url").value;
saveData(linkurl);

function saveData(xlinkurl) {
localStorage.setItem("linkurl", xlinkurl);
}
}

var buttontext = document.getElementById("button_text").value;
saveData(buttontext);

function saveData(xbuttontext) {
localStorage.setItem("buttontext", xbuttontext);
}
}
}} //end

// ЗАГРУЗКА

function load() {
if (typeof(Storage) != "undefined") {
document.getElementById("seo_meta_title").value = localStorage.getItem("seometatitle");
document.getElementById("seo_meta_description").value =  localStorage.getItem("seometadescription");
document.getElementById("header").value = localStorage.getItem("header");
document.getElementById("page_text").value = localStorage.getItem("pagetext");
document.getElementById("link_url").value = localStorage.getItem("linkurl");
document.getElementById("button_text").value = localStorage.getItem("buttontext");
}}

Просто ради этого здесь PHP для генерации save function

$arrlength = count($matches[0]); # Get how many items in array two.
for($x = 0; $x < $arrlength; $x++) { #counting
$place_name = str_replace ( "_" , "" , $matches[0][$x] ); #Create readible name _ to space.
echo 'var ' .$place_name. ' = document.getElementById('.'"'.$matches[0][$x].'"'.').value;';

echo "\n";
echo   'saveData('.$place_name.');';
echo "\n";
echo 'function saveData(x'.$place_name.') {';
echo "\n";
echo 'localStorage.setItem("'.$place_name.'", x'.$place_name.');';
echo "\n";
echo '}}';
echo "\n";

А вот и PHP для load function

$arrlength = count($matches[0]); # Get how many items in array two.
for($x = 0; $x < $arrlength; $x++) { #counting
$place_name = str_replace ( "_" , "" , $matches[0][$x] ); #Create readible name _ to space.
// Retrieve
echo 'document.getElementById("'.$matches[0][$x].'").value = localStorage.getItem("'.$place_name.'");';
echo "\n"; }

Массив, который он использует, сделан автоматически, захватывая {placeholder} сформируйте .html файл, заполнители меняются в зависимости от используемого html файла

   array(1) {
[0]=> array(6) {
[0]=> string(12) "placeholders"[1]=> string(15) "page_meta_title"[2]=> string(6) "header"[3]=> string(9) "page_text"[4]=> string(8) "link_url"[5]=> string(11) "button_text" }
}
}

Любая помощь будет принята с благодарностью! Спасибо за ваше время.

0

Решение

У вас есть несколько определений одной и той же функции. Только последнее определение будет в силе. Весь ваш javascript анализируется до того, как он будет запущен. Итак, все saveData() определения анализируются, и только последняя из них активна, когда вы пытаетесь вызвать ее несколько раз. Таким образом, исполняется только последний.

Трудно прочитать ваш код или понять ваши намерения без отступов в коде, но, вероятно, у вас должен быть один saveData() функция и один loadData() функция и просто вызывать их несколько раз, каждый раз с разными аргументами.

Я бы порекомендовал вам написать свой код javascript вручную, а затем сгенерировать структуры данных с вашим PHP, которые может использовать код Javascript, НЕ генерировать код Javascript.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]