2011-07-05 54 views
1

我已經有了一個系統,我允許用戶從n個複選框中選擇多個複選框,但還需要兩個與每個複選框關聯的輸入。這是一個消息,一個日期和一個時間。當我發佈要由PHP腳本處理的數據時,我希望能夠訪問每組複選框和兩個其他輸入,以便我可以查看用戶填寫每個消息的日期和時間他們選擇了。我無法想出一種方法將其他兩個輸入與每個複選框相關聯。帶有相關輸入的HTML表單

任何想法如何做到這一點?

回答

0

您可以使用像這樣的HTML輸入陣列...

<input type="text" name="messages[1][message]" value="herp" /> 
<input type="text" name="messages[1][date]" value="24th April" /> 
<input type="text" name="messages[1][time]" value="13:00" /> 

<input type="text" name="messages[2][message]" value="derp" /> 
<input type="text" name="messages[2][date]" value="26th April" /> 
<input type="text" name="messages[2][time]" value="18:00" /> 


<?php 

    $messages = $_REQUEST['messages']; 
    foreach ($messages as $messageId => $value){ 
     echo $value['message']; 
     echo $value['date']; 
     echo $value['time']; 
    } 
+0

事情是我有n筆消息,我不想用group1或group2來識別它們。我想只是有一個數組的數組,並在那些有3個領域,一個爲messageId,一個白天和一個時間。這是可能的,到目前爲止我沒有運氣! – rjbell00

+0

見編輯........ P.S你需要一個獨特的方式來識別你的羣體,在這種情況下是一個數字ID。如果頁面是由php或javascript生成的,那麼使用您提及的任何方法生成這些都是微不足道的。 – calumbrodie

+0

好像它會做這項工作。非常感謝! – rjbell00

0

你的HTML:

<input type="checkbox" name="car" /> 
<input type="text" name="msg_car" value="Car message" /> 
<input type="text" name="date_car" value="Car date" /> 

<input type="checkbox" name="bike" /> 
<input type="text" name="msg_bike" value="Bike message" /> 
<input type="text" name="date_bike" value="Bike date" /> 

<input type="checkbox" name="train" /> 
<input type="text" name="msg_train" value="Train message" /> 
<input type="text" name="date_train" value="Train date" /> 

<input type="checkbox" name="plane" /> 
<input type="text" name="msg_plane" value="Plane message" /> 
<input type="text" name="date_plane" value="Plane date" /> 

你的PHP腳本:

$array = array("car", "bike", "train", "plane"); 

for ($i = 0; $i < count($array); $i++) { 
    if (isset($_POST[$array[$i]])) { 
     //Checkbox was checked, get values 
     $msg = ""; 
     $date = ""; 

     $msg_id = "msg_" . $array[$i]; 
     $date_id = "date_" . $array[$i]; 

     if (isset($_POST[$msg_id])) 
       $msg = $_POST[$msg_id]; 
     if (isset($_POST[$date_id])) 
       $date = $_POST[$date_id]; 

    } 
} 

我覺得是這樣的應該管用。我沒有測試它..所以原諒我,如果這個例子仍然包含一些小錯誤。