php - jQuery/Php 错误来自未序列化发布数据的非法字符串偏移

标签 php jquery json

我正在发布一个 jquery 序列化数据,该数据从带有 name 属性(例如 formdata[1]field_x)的模态/弹出 div 标签发布

<div class="modal fade show" id="modal-payref-settings" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modal-paycode-detailsLabel" aria-modal="true" role="dialog" style="padding-right: 17px; display: block;">
<div class="modal-dialog   modal-dialog-scrollableX   "><div class="modal-content ">
<div class="modal-body ">
<input type="text" name="formdata[1]payref_autonum" class="form-control dropdown-vw-item-text input-payref-autonum  ">
<input type="text" name="formdata[1]payref_prefix" class="form-control  input-payref input-payref-prefix  text-end">
<input type="text" name="formdata[1]payref_suffix" class="form-control  input-payref input-payref-suffix text-end">
<input type="text" name="formdata[1]payref_pad" class="form-control  input-payref input-payref-num-pad text-end" value="4">
<input type="text" name="formdata[1]payref_next" class="form-control  input-payref input-payref-num  text-end" value="876">
<input type="text" name="formdata[1]payref_sample" class="form-control input-payref-sample text-end" placeholder="Sample" aria-label="Sample" readonly="">
</div>
<!-- modal-body ends -->
</div>
</div>
</div>


$.ajax({
type: 'POST',
    url: 'model/trcode.php',
    data: {
        'a': 'SAVE_PAYREF',
    
      'formdata':$('#modal-payref-settings').find('[name^="formdata"]').serialize(),
    },
  //  dataType: "JSON",
    success: function (jsonStr) {
       alert(jsonStr);
    }
});

Fetch/XHR 捕获序列化的发布数据,这表明发布是正确的。使用 print_r($_POST["formdata"] ); 返回相同的结果。

formdata%5B1%5Dpayref_autonum=Yes&formdata%5B1%5Dpayref_prefix=P2022&formdata%5B1%5Dpayref_suffix=&formdata%5B1%5Dpayref_pad=4&formdata%5B1%5Dpayref_next=876&formdata%5B1%5Dpayref_sample=

数据正在变得未序列化parse_str($_POST["formdata"], $formdata );。但是 $formdata 返回一个空数组。

(
  [formdata] => Array
   (
     [1] => 
   )
)

最佳答案

问题是您的表单字段 name 属性不是一个数组(您认为它是一个数组,但有语法错误)。要修复此问题,请执行以下操作:

像这样更改名称:formdata[1][payref_autonum] 等其他人。

关于php - jQuery/Php 错误来自未序列化发布数据的非法字符串偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72386908/

相关文章:

javascript - JQuery ajax 返回值给其他函数

php - 取消设置数组中的索引将它变成一个对象

javascript - 从数据库获取和显示数据(Javascript XML HTTP 请求)

PHP + curl : Connection closure while negotiation auth (HTTP 1. 0?)

php - 使用 views.detail.php SugarCRM 在详细 View 中自定义按钮

javascript - Extjs 缓存 JSON 请求

java - 在使用 GSON 解析 JSON 时使用枚举

php - 在选项卡中回显不同字段

javascript - AJAX页面加载返回[object object]

javascript - Handlebars 模板中元素的点击功能