如何使用ajax发布一些内容然后检索它?

时间:2015-06-11 14:27:19

标签: javascript jquery html ajax json

你们都可以看到我对javascript和jquery很重要,但我对ajax请求有疑问。

这是我想做的,但我不知道如何:

  • 我宣布了content.append('<div id="box"><textarea>some content</textarea></div');
  • 现在我想让text = $('textarea').value();转到ajax请求。

类似的东西:

$.ajax({
    type: "POST",
    url: "/localstorage/boxes",
    data: text,
    contentType: "application/json; charset=utf-8",
    dataType: "json"
});

然后我想将该数据调回另一个函数oldBox(),以便在用户点击该事件时将其显示回来

更新

function saveNote(){

        var theNote = $('div#note');
        var textValue = $this.$('textarea').value();
        var textData = JSON.stringify(textValue);


        $.ajax ({
            type:"POST",
            url: "/localstorage/notes",
            data: textData,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                loadNote(data);
            }
        });

    }

这很好,它修复了我的错误但是当我尝试找到localstorage / notes文件时它是空的,它应该是空的吗?

3 个答案:

答案 0 :(得分:1)

在你的ajax中,添加以下内容:

success: function(data) {
    oldBox(data);
}

所以你的ajax看起来像这样:

$.ajax({
    type: "POST",
    url: "/localstorage/boxes",
    data: text,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
        oldBox(data);
    }
});

这假设您的oldBox()函数与此类似:

function oldBox(data) {
    $('.whatever').html(data);
}

但是,您也可以将此行($('.whatever').html(data);)添加到success:

/localstorage/boxes中,您需要回显出ajax要检索的内容。

例如:

text = "Hello";
// text -> /localstorage/boxes
/localstorage/boxes echoes out 'Hi to you to!'
// /localstorage/boxes -> original page
oldBox('Hi to you to!');

答案 1 :(得分:0)

我希望能提供帮助,我认为问题在于您的成功:

function saveNote(){

    var theNote = $('div#note');
    var textValue = $this.$('textarea').value();
    var textData = JSON.stringify(textValue);


    $.ajax ({
        method:'POST',
        url: '/localstorage/notes',
        type: 'POST',
        data: textData,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json'
        success: function(data) {
            loadNote(data);
        }
    }).success(function(data) {
        loadNote(data);
    });

}

如果这不起作用

function saveNote(){

    var theNote = $('div#note');
    var textValue = $this.$('textarea').value();
    var textData = JSON.stringify(textValue);


    $.ajax ({
        method:'POST',
        url: '/localstorage/notes',
        type: 'POST',
        dataType: 'json'
        success: function(data) {
            loadNote(data);
        }
    }).done(function(data) {
        loadNote(data);
    });

}

答案 2 :(得分:0)

你的例子都没有用,但我找到了解决方案,这里是:)

jQuery的:

$(document).on("click", "#save", function(event) {
        var note = $(this).parent().parent().children("textarea").val();
        $.post( "main.php", { note: note });
    });

PHP:

<?
    $json = $_POST['note'];
    $form = json_decode( $json, true);

    print_r($form);
?>