誰かが私を正しい方向に向けることができますか
FROM にこの HTML があります (この例では単純化されています):
=============== HTML を開始 ===================
<select name="Postage[]" id="Unique-ID">
<option value="1">Postage Option 1</option>
<option value="2">Postage Option 2</option>
<option value="3">Postage Option 3</option>
</select>
<input name="PostagePrice[]" id="Price-Unique-ID" value="" />
<select name="Postage[]" id="Unique-ID">
<option value="1">Postage Option 1</option>
<option value="2">Postage Option 2</option>
<option value="3">Postage Option 3</option>
</select>
<input name="PostagePrice[]" id="Price-Unique-ID" value="" />
<select name="Postage[]" id="Unique-ID">
<option value="1">Postage Option 1</option>
<option value="2">Postage Option 2</option>
<option value="3">Postage Option 3</option>
</select>
<input name="PostagePrice[]" id="Price-Unique-ID" value="" />
================== HTML終了 =====================
これをフォームから収集し、以下のコードで配列 ($arrPostageOptions) に設定しています。
=============== PHPを起動 ===================
if (isset($_POST['Postage'])) {
if (is_array($_POST['Postage'])) {
$n = count($_POST['Postage']);
for ($i = 0; $i < $n; ++$i) {
// check to only collect completed entries
if( !empty($_POST['Postage'][$i]) && !empty($_POST['PostagePrice'][$i]) ){
// assign to array
$arrPostageOptions[$i] = array( "Postage" => $_POST['Postage'][$i], "PostagePrice" => $_POST['PostagePrice'][$i], );
}
}
}
}
=============== PHP終了 ===================
これにより、次の配列が得られます
============ 配列の結果 ===============
Array(
[0] => Array
(
[Postage] => 1
[PostagePrice] => 12
)
[1] => Array
(
[Postage] => 2
[PostagePrice] => 24
)
[2] => Array
(
[Postage] => 3
[PostagePrice] => 48
)
)
============ 配列結果の終了 ===============
私が望む答え(私が思う)は、各配列に対して次のとおりです。
1 & 12
2 & 24
3 & 48
(配列番号が郵便番号と一致するのは単なる偶然です。'Postage' と 'PostagePrice' だけが必要です)
私は次のことを試みています:
=========== 私がしようとしていることの始まり ==========
foreach ($arrPostageOptions as $id) {
while ($id) {
$Postage = $id["Postage"];
$PostagePrice = $id["PostagePrice"];
// echo $Postage.' '.$PostagePrice.'<br>';
unset($id);
if (!$listing_obj->addPostageOptions($ListingID, $PostageOptionID, $PostagePrice, $db)) {
$err_text .= 'An error occurred adding Postage Option'.$PostageOptionID;
}
}
}
====== 私がしようとしていることの終わり ==============
残念ながら、これは期待どおりに機能していません (しかし、これは私が得た最も近いものです)。また、複数の foreach ループを試しましたが、再び何を取得できません ($id を不安定にすると、ループが永遠に続行されなくなりますが、未定義変数 $id の PHP 通知も表示されます)。
私はこれを行う方法を知っていると確信していますが、これらの配列はまだ私を混乱させているため、忘れて複雑になりすぎている可能性があります。
どんなアドバイスでも大歓迎です!