我有一个textarea,我在其中使用ACE Editor来获得语法高亮。我从编辑器中获取了值。然后我想将值设置为cookie,然后在PHP中检索cookie,但它总是给我null。
我的代码:
<form method="post">
<div class="form-group">
<div class="col-lg-2">
<label for="comment">Translation:</label>
</div>
<div class="col-lg-10">
<textarea class="form-control" rows="15" id="translation" name="editor_data"><?=$file;?></textarea>
<input type="hidden" name="komutdosyasi" style="display: none;">
</div>
<br/>
<div class="col-lg-12">
<button class="btn btn-primary btn-md pull-right" name="save">Save</button>
</div>
</div>
</form>
和javascript代码:
<script>
var editor = ace.edit("translation");
editor.setTheme("ace/theme/twilight");
editor.session.setMode("ace/mode/php");
editor.resize();
editor.setOptions({
maxLines: 35
});
editor.on("change", function () {
var value = editor.getSession().getValue();
var v = setCookie('editor_data', value);
var x = getCookie('editor_data');
console.log('Cookie: ' + x);
});
function setCookie(cname, cvalue) {
document.cookie = cname + "=" + cvalue + "; ";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.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>
所有jquery和编辑器脚本都加载到标记中。
我做错了什么?
答案 0 :(得分:1)
存储可能存在问题。尝试使用本地存储而不是cookie,因为它更快并且可以容纳更多数据。只有在您只需要从客户端访问数据时才这样做。
此网页提供了非常好的信息:http://www.w3schools.com/html/html5_webstorage.asp
希望这有帮助。