php - 通过带有数组的 php 发布到表单

标签 php arrays forms post curl

我正在使用 sirportly 作为我的支持,我有能力通过 html 远程发布表单,但是我正在尝试将它集成到 wordpress 中,所以想通过 curl/php 从插件发布这个表单挑战我我要发布到数组对象中:

例如sirportly生成的基本原始HTML表单包含以下内容:

<input type='text' name='ticket[name]' id='form26-name' />
<input type='text' name='ticket[email]' id='form26-email' />
<input type='text' name='ticket[subject]' id='form26-subject' />
<textarea name='ticket[message]' id='form26-message'></textarea>

我知道对于基本的表单元素,例如 name=name、name=email 等,我可以执行以下操作:

//create array of data to be posted
$post_data['firstName'] = 'Name';
$post_data['action'] = 'Register';
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
    $post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);

考虑到需要将元素发布为“ticket[name]”而不仅仅是“name”,我该如何做类似的事情

编辑/更新 - 回答

多亏了下面的答案,我想出了解决方案,我的问题是无法访问数组中的数据,因为我以不同的方式接收数据(但都是从数组中接收数据),但正确编码了在帖子请求中,这是我最终得到的结果(请注意,我正在使用重力形式获取数据:

//numbers in here should match the field ID's in your gravity form
$post_data['name'] = $entry["1"];
$post_data['email'] = $entry["2"];
$post_data['subject'] = $entry["3"];
$post_data['message']= $entry["4"];

foreach ( $post_data as $key => $value) {
    $post_items[] = 'ticket[' . $key . ']' . '=' . $value;
}

$post_string = implode ('&', $post_items);

我只需要更改 for 循环以将额外的 ticket[ 和 ] 部分包裹在提交后的键周围

最佳答案

foreach ( $post_data['ticket'] as $key => $value) {
    $post_items[] = $key . '=' . $value;
}

关于php - 通过带有数组的 php 发布到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923411/

相关文章:

PHP 5.4 Call-time pass-by-reference - 可以轻松修复吗?

php - 解析PHPBB3的BB代码

php - 使用 Wordpress '不能使用 stdClass 类型的对象作为数组'

php函数以数组形式返回包含数组的sql结果

php - 如何使用 PHP 和 MySQLi 对照另一个多维数组检查一个多维数组值并根据结果更新批量数据?

javascript - 关于 JQuery UI 的两个问题

css - twitter bootstrap - 选择表单后搜索表单中的图标消失

php - MySql 类似运算符,用于选择在移动设备中无法正常工作的所有记录

javascript - 动态创建一个 javascript/jquery 多级数组

Jquery 将相同的 id 定位为单击元素的类名?