我已经搜索了论坛,但没有找到任何与发布多数组有关的具体示例。这是我的问题:
我正在为我的伙伴和我正在编写的应用程序进行前端编程。他已经完成了所有后端工作,但还用 PHP 和 HTML 创建了一个工作原型前端(大约 1991 年的风格,使用表格进行定位……阅读起来绝对是一场噩梦)。
我正在使用 html/css/Jquery 从头开始重新编码所有内容。我特别喜欢 jquery 来创建动态表单。在用例中,客户向提供商提出与特定发票相关的新票证(事件)。由于一张发票可能包含几十个行项目,因此客户还可以指定一个或多个项目。在我的代码中,我在一个多数组中捕获所有这些,然后将其发布到一个 php 页面进行处理。
我的问题是我似乎无法找到正确的方法将数据从我的 JS 代码以它喜欢的数据结构发布到 PHP。
上代码:
表单页面
用户输入的每个项目都有几个字段。我将每个都包装在一个字段集中。
$('.add_product').click(function(){
index++;
$(this).parent().parent().append("<fieldset>" +
"<label for='name'>Name</label><input type='text' alt='name' value='' id='" + this + "_name" + index + "'/>" +
"<label for='code'>Code</label><input type='text' alt='code' value='' id='" + this + "_code" + index + "'/>" +
"<label for='lotnumber'>Lot</label><input type='text' alt='lotnumber' value='' id='" + this + "_lotnumber" + index + "'/>" +
"<label for='expiration'>Expiration</label><input type='text' alt='expiration' value='' id='" + this + "_expiration" + index + "'/>" +
"<p class='remove_product'>Remove</p></fieldset>");
提交表单后,我将所有字段集选择到一个多数组中,如下所示:
var postValues={};
var i=0;
$('fieldset').each(function(){
postValues[i]={"VarChar08":"","VarChar07": $(this).parent().parent().attr('id'),"VarChar14":"P" , "VarChar09": $(this).find('input[alt="name"]').val(), "VarChar10": $(this).find('input[alt="code"]').val(), "VarChar11": $(this).find('input[alt="lotnumber"]').val(), "VarChar12": $(this).find('input[alt="expiration"]').val(),"VarChar13":"","VarChar20":"1"} ;
i++;
});
我最后一次尝试是对数组进行 JSON 字符串化:
var itemValues= JSON.stringify(postValues);
然后我将它们发布到 php 处理器页面:
$.post("some.php", {items: itemValues});
PHP 处理器页面
$itemValues=json_decode($_POST['items']);
$items = $itemValues;
// read into POST values for submitting to a stored procedure
foreach ($items AS $m => $tmp_items){
$_POST['VarChar09'] = $items[$m][3]; // name
$_POST['VarChar10'] = $items[$m][4]; // code
$_POST['VarChar11'] = $items[$m][5]; // lot
$_POST['VarChar12'] = $items[$m][6]; // expiry
}
不幸的是,这不起作用。PHP 处理器页面未正确读取数据结构,因此未正确分配值。恐怕我已经达到了我的经验的极限。我怀疑我从javascript方面对数据结构的理解可能存在缺陷。我还没有完全理解拥有一个数组对象、一个对象对象、一个对象数组或一个数组数组的整个想法。尽管如此,这可能与它有任何关系,也可能没有任何关系。
任何帮助深表感谢!