次の問題があります。
マイルストーンを保存するために使用されるjQueryアコーディオンがあり、各マイルストーン内にイベントをマイルストーンに追加するボタンがあります。それはうまくいきます。各入力に名前を割り当てる方法は次のとおりです。
<input type="text" name="milestone_0_name">
<input type="text" name="milestone_0_start_date">
<input type="text" name="milestone_0_end_date">
<input type="text" name="milestone_0_description">
<input type="text" name="milestone_1_name">
<input type="text" name="milestone_1_start_date">
<input type="text" name="milestone_1_end_date">
<input type="text" name="milestone_1_description">
<input type="text" name="milestone_2_name">
<input type="text" name="milestone_2_start_date">
<input type="text" name="milestone_2_end_date">
<input type="text" name="milestone_2_description">
and so on...
その後、イベントをmilestone_0に追加すると、たとえば生成されたマークアップは次のようになります。
<input type="text" name="milestone_0_events_event_0_event_name">
<input type="text" name="milestone_0_events_event_0_event_start_date">
<input type="text" name="milestone_0_events_event_1_event_name">
<input type="text" name="milestone_0_events_event_1_event_start_date">
私は$_POST
データ処理の専門家ではないので、この方法を使用して、特定のマイルストーンに属するイベントを把握しています。問題は、マイルストーンを構成する変数の数 (マイルストーンの情報と各イベント情報) を特定するために使用している関数に、見つけられない問題があることです。
機能は次のとおりです。
// Assign all $_POST data to $milestones
$milestones = $_POST;
print_r($milestones);
$milestoneNames = array();
$milestoneSize = array();
$default = "milestone_";
$indexOfMilestone=0;
$ind=0;
$text=$default.$indexOfMilestone;
$indexOfIteration=0;
$actualSize=0;
$change=false;
foreach($milestones as $ms)
{
$currKey = KeyName($milestones,$indexOfIteration);
echo $text.'.'.$currKey.'<br />';
$pos = strripos($currKey, $text);
if ($pos === false)
{
$milestoneSize[$indexOfMilestone] = $indexOfIteration;
$indexOfMilestone++;
$text=$default.$indexOfMilestone;
}
$indexOfIteration++;
}
print_r($milestoneSize);
テスト データを使用すると、出力は次のようになります。
[milestone_0_name] => Milestone 1
[milestone_0_start_date] => 12-4-25
[milestone_0_end_date] => 12-4-26
[milestone_0_description] => abcdefg
[milestone_0_events_event_0_event_name] => asdg
[milestone_0_events_event_0_event_start_date] => ff
[milestone_0_events_event_1_event_name] => fghjk
[milestone_0_events_event_1_event_start_date] => ff
[milestone_0_events_event_2_event_name] => zxcv
[milestone_0_events_event_2_event_start_date] => ff
[milestone_0_events_event_3_event_name] => bnm,
[milestone_0_events_event_3_event_start_date] => zz
[milestone_0_events_event_4_event_name] => qwerty
[milestone_0_events_event_4_event_start_date] => zz
[milestone_0_events_event_5_event_name] => uiop
[milestone_0_events_event_5_event_start_date] => zz
[milestone_1_name] => Milestone 2
[milestone_1_start_date] => 12-4-26
[milestone_1_end_date] => 12-4-27
[milestone_1_description] => sadg ads asdgasdg adsga sgdsa gsad adsg asdg
[milestone_1_events_event_0_event_name] => 1234
[milestone_1_events_event_0_event_start_date] => ff
[milestone_1_events_event_1_event_name] => 4321
[milestone_1_events_event_1_event_start_date] => ff
[milestone_1_events_event_2_event_name] => 6542
[milestone_1_events_event_2_event_start_date] => ff
)
milestone_0.milestone_0_name
milestone_0.milestone_0_start_date
milestone_0.milestone_0_end_date
milestone_0.milestone_0_description
milestone_0.milestone_0_events_event_0_event_name
milestone_0.milestone_0_events_event_0_event_start_date
milestone_0.milestone_0_events_event_1_event_name
milestone_0.milestone_0_events_event_1_event_start_date
milestone_0.milestone_0_events_event_2_event_name
milestone_0.milestone_0_events_event_2_event_start_date
milestone_0.milestone_0_events_event_3_event_name
milestone_0.milestone_0_events_event_3_event_start_date
milestone_0.milestone_0_events_event_4_event_name
milestone_0.milestone_0_events_event_4_event_start_date
milestone_0.milestone_0_events_event_5_event_name
milestone_0.milestone_0_events_event_5_event_start_date
**milestone_0.milestone_1_name**
milestone_1.milestone_1_start_date
milestone_1.milestone_1_end_date
milestone_1.milestone_1_description
milestone_1.milestone_1_events_event_0_event_name
milestone_1.milestone_1_events_event_0_event_start_date
milestone_1.milestone_1_events_event_1_event_name
milestone_1.milestone_1_events_event_1_event_start_date
milestone_1.milestone_1_events_event_2_event_name
milestone_1.milestone_1_events_event_2_event_start_date
Array ( [0] => 16 )
この問題は、太字または ** ** (プレビューが正しく機能するかどうか不明) でマークされた行で発生します。milestone_0 はmilestone_1 である必要があります。そして、その問題はカウントプロセス全体を台無しにします:)。
とにかく、それがデータを保存するのに適していない場合は$_POST
、データ ストレージを改善するための提案を受け付けています。