POST值的不同值?

时间:2011-03-27 21:37:44

标签: php javascript jquery json

我有联系人编辑表格。

通过ajax(加载到灯箱中)请求整个表单。

表单预先加载了联系人数据。

单击编辑时,jQuery会检查表单中的差异,并仅返回更改的输入。

除了以外工作正常。

在localhost上执行echo $_POST['data']

给出了[{"name":"firstName","value":"James"}]

在制作时执行[{\"name\":\"firstName\",\"value\":\"James\"}]

额外的\来自哪里。

如果有帮助

localhost = windows,php 5.3
production = linux php 5.2

如果您需要更多代码,请告诉我

var contact = $(this).attr('rel');
$.facebox(function() {
  $.ajax({
    url: site_url + 'ajax/contact',
    type: 'POST',
    data: {
      id: contact,
      method: 'editForm'
    },
    success: function(data) {
      $.facebox(data);
      $('#editForm').submit(function() {
        var data = [];
        var finalForm = $(this).serializeArray();
        var differences = 0;
        for (var i in initialForm) {
          if (!objectsAreSame(initialForm[i], finalForm[i])) {
            data[differences] = finalForm[i];
            differences++;
          }
        }
        if (differences > 0) {
          $.ajax({
            url: site_url + 'ajax/contact',
            type: 'POST',
            data: {
              id: finalForm[0].value,
              method: 'editContact',
              data: JSON.stringify(data)
            },
            success: function(data) {
              $('#contact' + finalForm[0].value).hide("drop", {direction: 'up'}, 500, 
              function() {
                $('#contact' + finalForm[0].value).replaceWith(data);
                $('#contact' + finalForm[0].value).show("drop", {direction: 'up'}, 500, function() {
                  $(document).trigger('close.facebox');
                });
              });
              return false;
            }
          });
        }
        $(document).trigger('close.facebox');
        return false;
      });
      $('#accordion').accordion();
      initialForm = $('#editForm').serializeArray();
    }
  });
});

3 个答案:

答案 0 :(得分:1)

看看http://php.net/manual/en/security.magicquotes.php。在您的开发机器上,由于您运行的是5.3.0,因此不推荐使用它们。在您的生产机器上,它们已启用。检查如何禁用它们,但一定要仔细检查您的代码。

答案 1 :(得分:0)

这些只是双引号的转义字符。它可能只是解释器以不同的方式显示它,并且不应该对POSTed变量的实际行为有任何影响。

答案 2 :(得分:0)

echo stripslashes($_POST['data']);

http://www.tizag.com/phpT/php-magic-quotes.php