2014-12-03 186 views
0

對不起noob問題。但我被困在這裏。

這是我的HTML表單,其中用戶表單div可以儘可能多地克隆。 #提交表單div有一些隱藏的值,這對所有人都是通用的。

HTML -

<div class="user-form"> 
    <input type="text" autocomplete="off" name="name[]" > 
    <input type="email" autocomplete="off" name="mail[]" > 
</div> 

<div class="user-form"> 
    <input type="text" autocomplete="off" name="name[]" > 
    <input type="email" autocomplete="off" name="mail[]" > 
</div> 

<div id="submit-form"> 
    <input type='hidden' name='refer_user_id' value='<?php echo $refer_user_id ?>'> 
    <input type='hidden' name='refer_user_email' value='<?php echo $refer_user_email ?>'> 
    <input type="submit" value="Invite" /> 
    <input type="button" class="button" id="clonetrigger" value="Clone" /> 
</div> 

我使用AJAX提交表單。基本上我想使用名稱和電子郵件字段創建帳戶。在PHP中如何使用foreach循環訪問名稱和電子郵件字段,以便我可以創建唯一的帳戶?

我的print_r($ _ POST);數組看起來像這樣。

Array 
(
    [name] => Array 
    (
     [0] => david 
     [1] => Mark 
     [2] => cindy 
    ) 

    [mail] => Array 
    (
     [0] => [email protected] 
     [1] => [email protected] 
     [2] => [email protected] 
    ) 

    [refer_user_id] => 2 
    [$refer_user_email] => [email protected] 
) 
+1

看起來,如果你使用一個普通'for'循環與索引(即不'foreach'),你可以投其所好數字指標,對嗎? – developerwjk 2014-12-03 20:05:20

回答

1

創建一個迭代次數等於提交的名稱/電子郵件對數量的循環,然後使用循環計數器訪問每個用戶的值。

for ($i = 0; $i < count($_POST['name']); $i++) { 
{ 
    $name = $_POST['name'][$i]; 
    $mail = $_POST['mail'][$i]; 
    // Process the new user 
} 
+1

不計入循環中 – 2014-12-03 20:14:31

1
foreach($_POST['name'] as $key => $val) { 
    echo $val 
} 

foreach($_POST['mail'] as $key => $val) { 
    echo $val 
} 

最簡單的方式通過這些元件迴路。您可以使用$ _POST ['refer_user_id']引用其他元素。雖然這用於foreach的目的,上面發佈的for循環更有效,所以我建議使用它。

http://php.net/manual/en/control-structures.foreach.php更多閱讀在這裏。

2

用foreach檢查其中一個數組,使用第二個數組的鍵。

foreach($_POST['name'] as $key =>$name){ 
    $mail = $_POST[$key]; 
} 
1

可以使用array_combine功能:

$data = array_combine($_POST['name'],$_POST['mail']); 
foreach($data as $name=>$mail){ 
    print $name; 
    //... 
} 

array_combine

1

你也可以使用自動生成表單項的JavaScript來給它們一個可以導致連接php對象的名字。即

<div class="user-form"> 
    <input type="text" autocomplete="off" name="user[1][name]" /> 
    <input type="email" autocomplete="off" name="user[1][mail]" /> 
</div> 

<div class="user-form"> 
    <input type="text" autocomplete="off" name="user[2][name]" /> 
    <input type="email" autocomplete="off" name="user[2][mail]" /> 
</div> 

,那麼你可以通過與foreach($_POST['user'] as $key=>$value)等的對環...