0

1週間の時間範囲を作成するために使用しているフォームがあります。現在は、曜日、開始時刻、終了時刻を選択しています。これと同じ形式の新しいグループを追加するJavaScriptがあり、各要素には配列で名前が付けられています。

<label>Day Of Week:</label> <select name="dow[]" multiple="multiple" size="5"><option value="sun">sun</option><option value="mon">mon</option><option value="tue">tue</option><option value="wed">wed</option><option value="thu">thu</option><option value="fri">fri</option><option value="sat">sat</option></select><br />
<label>Start Time</label> Hour: <select name="starthour[]"><option value="0">12 AM</option><option value="1">1 AM</option><option value="2">2 AM</option><option value="3">3 AM</option><option value="4">4 AM</option><option value="5">5 AM</option><option value="6">6 AM</option><option value="7">7 AM</option><option value="8">8 AM</option><option value="9">9 AM</option><option value="10">10 AM</option><option value="11">11 AM</option><option value="12">12 PM</option><option value="13">1 PM</option><option value="14">2 PM</option><option value="15">3 PM</option><option value="16">4 PM</option><option value="17">5 PM</option><option value="18">6 PM</option><option value="19">7 PM</option><option value="20">8 PM</option><option value="21">9 PM</option><option value="22">10 PM</option><option value="23">11 PM</option></select>Minute: <select name="startmin[]"><option value="0">0</option><option value="15">15</option><option value="30">30</option><option value="45">45</option></select> <br /> 
<label>End Time</label> Hour: <select name="endhour[]"><option value="0">12 AM</option><option value="1">1 AM</option><option value="2">2 AM</option><option value="3">3 AM</option><option value="4">4 AM</option><option value="5">5 AM</option><option value="6">6 AM</option><option value="7">7 AM</option><option value="8">8 AM</option><option value="9">9 AM</option><option value="10">10 AM</option><option value="11">11 AM</option><option value="12">12 PM</option><option value="13">1 PM</option><option value="14">2 PM</option><option value="15">3 PM</option><option value="16">4 PM</option><option value="17">5 PM</option><option value="18">6 PM</option><option value="19">7 PM</option><option value="20">8 PM</option><option value="21">9 PM</option><option value="22">10 PM</option><option value="23">11 PM</option></select>Minute: <select name="endmin[]"><option value="0">0</option><option value="15">15</option><option value="30">30</option><option value="45">45</option></select> <br />

このフォームはjavascriptで生成されるため、複数のルールを送信できます。複数選択ボックスを除いて、すべてが正常に機能します。

ユーザーがルール1のmonとwedで選択し、ルール2でtueを選択した場合、それらはフォーム上の同じ配列に結合されます。したがって、$_POSTのダンプは次のように表示されます。

Array ( [dow] => Array ( [0] => mon [1] => wed [2] => tue ) [starthour] => Array ( [0] => 0 [1] => 15 ) [startmin] => Array ( [0] => 0 [1] => 0 ) [endhour] => Array ( [0] => 5 [1] => 17 ) [endmin] => Array ( [0] => 0 [1] => 0 ) [do] => add [act] => scheduler [mod] => availability [avtype] => perm )

ダウのデータがどのルールからのものかを判断する方法がありません。私は外見上間違ったことをしているとは思わない。現在、私が持っている唯一の修正は、選択された1日だけを許可することです。しかし、人々は複数の日に同じ時間を過ごすのが一般的です。可能であれば、この機能を含めると便利です。

4

2 に答える 2

1

JavaScript で、ID を使用して各フォームに一意の名前を付けます。これは複数のフォームがある場合に機能しますが、最善の解決策ではない可能性があります。

おそらく最善の方法は、javascript フォームの生成で、var i; を追加することです。name=i+"dow[]" を使用すると、個々のフォーム要素を識別できます。少なくとも投稿では、同じ名前の同じフォームのフォーム要素を区別できるとは思いません。これらの要素を JavaScript のプリポストでループし、ポストに一意の識別子を割り当てることができます。

于 2012-01-12T20:34:16.300 に答える
0

私はこのようにします..ルールごとにタイムスタンプを取得し、生成されたフォームの選択要素は次のようになります..

    select name="dow[timestamp][]" ...     

したがって、すべてのルールには一意の配列が含まれます。

次のコードでタイムスタンプを取得できます。

function microtime (get_as_float) 
{
    var now = new Date().getTime();
    return now;
}
于 2012-01-12T20:37:24.317 に答える