2011-07-05 8 views
1

私は、ユーザーがn個のチェックボックスから複数のチェックボックスを選択できるシステムを持っていますが、各チェックボックスにはさらに2つの入力が必要です。これは、メッセージ、日付、時刻用です。 PHPスクリプトで処理するデータをポストすると、チェックボックスと2つの入力のそれぞれにアクセスできるようにしたいので、ユーザーが各メッセージの日付と時刻を確認できます彼らは選択した。私は、2つの入力をそれぞれのチェックボックスに関連付ける方法を考え出すのに問題があります。関連する入力を伴う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スクリプト:

答えて

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

私はメッセージの量があり、それらを識別するためにgroup1またはgroup2を使用する必要はありません。私はちょうど配列の配列を持っていると3つのフィールドを持っている、1つは、messageId、1つは1日と1つの時間があります。これは可能ですか?私は今まで運がありません! – rjbell00

+0

編集を参照してください。P.Sグループを識別するユニークな方法が必要です(この場合は数値IDです)。これは、ページがphpやjavascriptによって生成されている場合は、言及しておきたいどのメソッドでも生成するのは簡単です。 – calumbrodie

+0

それは仕事をするように大丈夫だ。どうもありがとう! – rjbell00

0

そうのようなあなたのhtmlの入力で配列を使用することができます

$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]; 

    } 
} 

私はこのような何かを考えますうまくいくはずです。私はそれをテストしませんでした..この例はまだいくつかの小さなエラーが含まれているので、私を許してください。

関連する問題