在Javascript中设置Cookie会在值存在时返回undefined

时间:2016-07-22 06:37:25

标签: javascript php jquery cookies

我有一个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和编辑器脚本都加载到标记中。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

存储可能存在问题。尝试使用本地存储而不是cookie,因为它更快并且可以容纳更多数据。只有在您只需要从客户端访问数据时才这样做。

此网页提供了非常好的信息:http://www.w3schools.com/html/html5_webstorage.asp

希望这有帮助。