如何从Jeditable Script中获取PHP中的JSON

时间:2010-12-24 16:37:39

标签: php json jquery-plugins jquery jeditable

我想创建一个可编辑的文本区域,将输入的值发布到数据库中,然后将新值返回到替换textarea的div。我在Stackoverflow上发现了这个,它处理将新值返回给div。

$(document).ready(function() {

     $('.edit_area').editable(submitEdit, { 
            indicator : "Saving...",
            tooltip   : "Click to edit...",
            type : "textarea",
            submit : "OK",
            cancel : "Cancel",
                        name : "Editable.FieldName",
            id   : "elementid",


});
function submitEdit(value, settings)
{ 
   var edits = new Object();
   var origvalue = this.revert;
   var textbox = this;
   var result = value;
   edits[settings.name] = [value];
   var returned = $.ajax({
           url: "http://jimmymorris.co.uk/xmas/record_xmas_msg.php", 
           type: "POST",
           data : edits,
           dataType : "json",
           complete : function (xhr, textStatus) 
           {
               var response =  $.secureEvalJSON(xhr.responseText);
               if (response.Message != "") 
               {
                   alert(Message);
               } 
           }
           });
   return(result);
 }



 });

我的问题是我不知道我的POST变量被调用了什么所以我可以插入到我的数据库中。它甚至将POST var返回给php还是发送了php json,我怎么知道它叫什么?

请提前帮助干杯。

2 个答案:

答案 0 :(得分:0)

它发送到服务器的内容取决于您提供给$ .ajax选项参数的“post”区域。
如果您传递查询字符串parementer data : "name=foo&surname=bar" PHP脚本将在$ _POST变量中接收它,并且可以通过$_POST['name'] $_POST['surname']进行访问 但是,如果将对象传递给data参数,则会将其更改为查询字符串,即

data : {name : 'foo', surname : 'bar'},

JQuery.ajax会将其更改为一个查询字符串,就像上面的示例那样它将被发送到服务器,PHP脚本也会像上面提到的那样访问它。

P.S我强烈建议在向服务器encodeURIComponent(variable)发送数据时使用某种类型的编码,然后使用urldecode在PHP中对其进行解码。

答案 1 :(得分:0)

您已发布ID,您可以在PHP页面中检索$_POST['id']。文本将作为值发布,您可以在PHP页面中将其作为$_POST['value']检索。您当然可以更改默认名称。