【问题标题】:Pass Javascript array into PHP array via form submission通过表单提交将 Javascript 数组传递给 PHP 数组
【发布时间】:2012-05-10 20:23:34
【问题描述】:

好的,我正在开发一个 Wordpress 插件,该插件允许用户更改选项的顺序。该选项以数组形式存储在 php 中,即 update_option('box_order',$box_array); 我已将这些框的数组按顺序回显到具有 jQuery UI 以允许拖动重新排序的页面上。

我监听重排序并通过 JS 调用这个函数

var order = jQuery( "#sortable" ).sortable( "toArray" );//get array of ids in order
jQuery('input.order-display').val(order); //set input field val to order array

这一切都很好,我得到 input[type=text] 显示随机播放的新订单。

但是 - 我有一个提交按钮,一旦订购完成,我需要提交表格。问题是我正在处理一个无法修改的现有插件。这个 PHP 插件接受输入内容并调用 update_option('box_order',$_POST['input_name']);

你们对我如何使 javascript 数组与 php 数组的语法完全匹配,以便在提交表单时用于通过我无法控制的插件更新 Wordpress 选项有什么建议吗? .我不想为插件命名,因为它是一个令人惊讶的项目,但我正在构建一个开源添加。

我知道 JSON.stringify() 等,但这不是一个选项,因为 PHP 插件只会监听输入本身的 $_POST。

谢谢!

【问题讨论】:

  • 所以,如果我理解你是正确的,你必须使用这样的东西:。所以在 POST 中,这将是:$_POST[some_name]['array_key'] = 'qwerty'。

标签: php jquery json forms post


【解决方案1】:

我能想到两件事:

  1. 动态创建<input name="input_name" /> 框并正常提交表单。这不是我的偏好,它有点老套。

  2. 使用 AJAX 发布到 PHP,使用 input_name: jQuery.param(order) 将数组序列化为使 PHP 将 POST 数据视为数组的格式。另见:http://api.jquery.com/jQuery.param/

【讨论】:

  • 感谢您的帮助,这是一种不同的方法,但我可能不得不放弃我原来的计划并尝试这种方式。再次感谢!
猜你喜欢
  • 2014-04-30
  • 2015-09-11
  • 2012-08-27
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 2011-05-16
相关资源
最近更新 更多