php - 无法获取 Ajax 更新表单以使用反序列化

标签 php jquery mysql ajax serialization

我正在尝试整理一个表单的工作演示(包括 mysql),该表单使用 jquery 序列化表单数据并使用 php 检索数据,以便可以将其传递给 mysql 查询。

表单似乎正确地发布了数据,但我不确定如何设置看到 $_POST 的处理脚本来反序列化数据,以便我可以将其传递给 mysql。您可以在 http://www.dottedi.biz/demo/code/ajax/serialize 查看演示.

我试过使用:

$data=unserialize($_POST['data']);

反序列化数据,但返回时是空的。一个简单的 print_r ($_POST);从表单返回数组数据。如果您测试演示,您会看到这一点。请提出建议?


添加信息 - script.js 文件的内容:

$(document).ready(function() {
  $('form').submit(function(evt) {
    evt.preventDefault();
    $.each(this, function() {

      var input = $(this);
      var value = input.val();
      var column = input.attr('name');
      var form = input.parents('form');
      var linked_col = form.find('#associated').attr('name');
      var linked_val = form.find('#associated').val();

      // var serializedData = $(this).serialize(); 

      $("#Status").html( "" );

      $.ajax({
        url: "update.php",
        data: {
          val: value,
          col: column,
          id: linked_col,
          id_val: linked_val
        },
        type: "POST",
        success: function(html) {
          $("#Status").html( html );
        }

      });
    });
  });
});

9/22 - 缩短的 script.js

$(document).ready(function() {
  $('form').submit(function(evt) {
    evt.preventDefault();
     $.each(this, function() {

      $("#Result").html( "" );

      $.ajax({
        url: "update.php",
        data: $('form').serialize(), // works to post data
        type: "POST",
        success: function(html) {         
          $("#Result").html( html );
        }

      });
    });
  }); 
});

评论 - 我测试过,似乎使用 serialize 发布的数据与创建 var serializedData = $(this).serialize() 之类的变量并发布变量的数据相同,但这更短。

最佳答案

也许你应该

$('form').submit(function(evt) { 
 // Serialize the data in the form
var serializedData = $(this).serialize();
//send off serializedData in your ajax
 }

然后

php脚本会有

$data=json_decode($_POST['data']);

新方式

  $.ajax({
    url: "update.php",
    data: {'data': $('form').serialize()}, // works to post data
    type: "POST",
    success: function(html) {         
      $("#Result").html( html );
    }

关于php - 无法获取 Ajax 更新表单以使用反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39604513/

相关文章:

php - 如何从加载到 PHPExcel 的 Excel 文件中删除/删除图表(图表)、图片(图像)?

php - osCommerce 认为表丢失,但它存在于数据库中

jQuery UI Datepicker - 出生日期 - 年份未正确选择

jQuery 和 CSS 在 Sharepoint 2013 中不起作用

python - 为什么 Python 没有正确设置我的 cron 作业的时间?

mysql - 如何创建带有外键的sql表

php - 使用 php mysql 读取或未读消息状态

php将json数据添加到mysql

php - 如何从 Ubuntu CLI 运行 Yii 控制台应用程序?

javascript - 如何检测div中水平滚动的结束?