2012-03-29 84 views
3

我使用sirportly爲我的支持,我有能力通過HTML遠程發佈表單,但我試圖將其整合到wordpress中,因此想要從插件發佈此表單通過捲曲/ PHP的我遇到的挑戰是張貼到數組對象:通過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> 

我知道基本形式的元件,例如名稱=名,姓名=電子郵件等我可以做到以下幾點:

//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); 

我怎麼做類似的考慮到的要素必須張貼「票[名]」,而不僅僅是「名」

編輯/ UPDATE -

感謝答案的答案,下面我來了與解決方案,我的問題是無法訪問數組中的數據,因爲我收到了它不同的方式(但從一個數組完全相同),但正確地編碼它在發佈請求,這是我最終(請注意,我使用重力形式獲取數據:

//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); 

我只是不得不chao NGE for循環包裹多餘的票[和]部分圍繞重點爲後提交

回答

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

我不得不編輯本後提交數據格式正確 – anthonysomerset 2012-03-29 13:13:01

2

你上面列出的表格將導致在服務器這個結構:

$_POST["ticket"] = Array(
    "name" => "some name", 
    "email" => "[email protected]", 
    "subject" => "subject of something", 
    "message" => "message text" 
    ); 

所以,$_POST["ticket"]真的是你的$post_data

+0

這是正確的,但是我不得不編碼這是正確的POST數據使提交內容僅僅是編輯原始行的一行來正確格式化,請參閱編輯 – anthonysomerset 2012-03-29 13:12:40

0

您可以通過該訪問變量:$_POST['ticket']['name']

所以,如果你想看到的VALU Ë你應該:echo $_POST['ticket']['name'];

循環你去:

foreach($_POST['ticket'] as $key => $val){ 
    echo "Key => " . $key. ", Value => " . $val . "<br />"; 
}