2015-04-05 91 views
1

我有一個公司模型的表單。公司在我的模型中有一個或多個聯繫人,所以在我的表單中,我爲client_name,client_phone,client_email提供了輸入,並且可以使用我創建的一個小小的JavaScript重複它們,以便可以根據需要添加儘可能多的客戶端。我需要張貼這一點,並獲得順序分組這些對象可以的foreach他們,我的意思是類似的東西:PHP Post組重複輸入

client: [ 
    {name: "Alan", phone: "123456123", email: "[email protected]}, 
    {name: "Alan", phone: "123456123", email: "[email protected]}, 
    {name: "Alan", phone: "123456123", email: "[email protected]} 
] 

應該如何命名的投入得到這個?

回答

1

如果我正確地讀你的問題,你可以做這樣的事情:

<form method="post"> 
    <input name="client[0][name]" value="Alan"> 
    <input name="client[0][phone]" value="123456123"> 
    <input name="client[0][email]" value="[email protected]"> 
    <input name="client[1][name]" value="Alan"> 
    <input name="client[1][phone]" value="123456123"> 
    <input name="client[1][email]" value="[email protected]"> 
    <input name="client[2][name]" value="Alan"> 
    <input name="client[2][phone]" value="123456123"> 
    <input name="client[2][email]" value="[email protected]com"> 
    <input type="submit"> 
</form> 

,這將給在這個格式的數組,準備json_encode ING:

Array 
(
    [client] => Array 
     (
      [0] => Array 
       (
        [name] => Alan 
        [phone] => 123456123 
        [email] => [email protected] 
       ) 

      [1] => Array 
       (
        [name] => Alan 
        [phone] => 123456123 
        [email] => [email protected] 
       ) 

      [2] => Array 
       (
        [name] => Alan 
        [phone] => 123456123 
        [email] => [email protected] 
       ) 

     ) 

) 

另一種選擇參考意見:

<form method="post"> 
    <input name="name[]" value="Alan"> 
    <input name="phone[]" value="123456123"> 
    <input name="email[]" value="[email protected]"> 
    <input name="name[]" value="Alan"> 
    <input name="phone[]" value="123456123"> 
    <input name="email[]" value="[email protected]"> 
    <input name="name[]" value="Alan"> 
    <input name="phone[]" value="123456123"> 
    <input name="email[]" value="[email protected]"> 
    <input type="submit"> 
</form> 

而PHP重建數組:

$array = array(); 
foreach ($_POST['name'] as $key => $name) { 
    $array[] = array(
     'name' => $name, 
     'phone' => $_POST['phone'][$key], 
     'email' => $_POST['email'][$key] 
    ); 
} 
+0

我想要更自動的東西,因爲我有這些字段的次數取決於我添加了多少箇中繼器。但我想我必須採取這個選擇。謝謝! – Alan 2015-04-05 03:49:09

+0

還有另一種選擇,你不必使用數字,我會在一秒鐘內添加它 – rjdown 2015-04-05 03:49:57