当值存在时,Javascript中的Set Cookie返回未定义的值

当值存在时,Javascript中的Set Cookie返回未定义的值,javascript,php,jquery,cookies,Javascript,Php,Jquery,Cookies,我有一个文本区,我使用ACE编辑器来突出显示语法。我从编辑器onchange获取值。然后我想将该值设置为cookie,然后在PHP中检索cookie,但它总是给我null 我的代码: <form method="post"> <div class="form-group"> <div class="col-lg-2"> <label for="comment">Translat

我有一个文本区,我使用ACE编辑器来突出显示语法。我从编辑器onchange获取值。然后我想将该值设置为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>

var editor=ace.edit(“翻译”);
编辑:setTheme(“ace/theme/twilight”);
setMode(“ace/mode/php”);
editor.resize();
editor.setOptions({
最大行数:35
});
关于(“更改”,函数(){
var value=editor.getSession().getValue();
var v=setCookie('editor_data',value);
var x=getCookie('editor_data');
log('Cookie:'+x);
});
函数setCookie(cname,cvalue){
document.cookie=cname+“=”+cvalue+“;”;
}
函数getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;i可能是存储问题。请尝试使用本地存储而不是cookie,因为它速度更快,可以保存更多数据。仅当您只需要从客户端访问数据时才执行此操作

这个网页有非常好的信息:


希望这有帮助。

您在onchange处理程序中获得数据了吗?例如:
var value=editor.getSession().getValue()
是的,我会…这是一件奇怪的事情…我会这样做,然后当我在控制台上记录我设置的cookie时,它会显示为null。请注意,如果您使用
localhost
在本地测试此cookie,则根本不会设置cookie。我正在一台实时服务器上测试,这可能是因为文本大小吗?因为我现在了解到cookie的大小uld最大4096字节,我尝试设置一个非常大的文本。PHP代码实际上当前(225行)本地存储没有帮助,因为我需要服务器端的数据。这就是为什么我想使用COOKIE,因为这样我就可以从PHP中检索$u COOKIE。所以我使用ajax发布到PHP