私はフォームデータをサーバーに送るための電子メールに渡しています(この場合、私はSendGridを使用していますが、PHPではなくAPIに関連していると思います)。フォーム上に反復可能なジョブセクションがあります。フォームに複数のジョブを追加して記入することもできます。フィールドをクローンし、各フィールドラベル/名前とIDの前に整数(たとえば、wh-company2
とwh-company2
など)を付加します。最大10のジョブを追加できます。PHPはオプションのフィールドデータのためにセットする - 未定義インデックス
私はこれを私の電子メールテンプレートに送信しています。すべてがうまくいきますが、ジョブセクションになるとチェックしたいので、たとえばwh-company8
が存在すれば、8個のジョブデータが返されます。
<?php for ($count = 1; $count <= 10; $count++) : ?>
<?php if (isset($submitted_data['wh-company' . $count . '\''])) : ?>
<p><strong>Work History <?php echo $count; ?></strong><br/>
Company: <?php echo $submitted_data['wh-company' . $count . '\'']; ?><br/>
Position: <?php echo $submitted_data['wh-position' . $count . '\'']; ?><br/>
Company address: <?php echo $submitted_data['wh-address-1' . $count . '\'']; ?><br/>
Date worked from: <?php echo $submitted_data['wh-date-started' . $count . '\'']; ?><br/>
Date worked until: <?php echo $submitted_data['wh-date-ended' . $count . '\'']; ?><br/>
Reasons for leaving: <?php echo $submitted_data['wh-reasons-you-left' . $count . '\'']; ?><br/>
Referee name(s): <?php echo $submitted_data['wh-referee-name' . $count . '\'']; ?><br/>
Referee position: <?php echo $submitted_data['wh-referee-position' . $count . '\'']; ?><br/>
Referee phone number: <?php echo $submitted_data['wh-referee-telephone' . $count . '\'']; ?><br/>
Referee email: <?php echo $submitted_data['wh-referee-email' . $count . '\'']; ?><br/></p>
<?php endif; ?>
<?php endfor; ?>
これまで私がこれまで行ってきたことです。私はisset
を持っておらず、むしろちょうどif ($submitted_data['wh-company' . $count . '\'']) :
を持っていましたが、それは10項目のそれぞれに対してNotice: Undefined index
エラーを返しました。私はisset
を含めましたが、何も返されません。
明らかに間違っているのですか?
なぜこの '\' 'を追加していますか? –
\は '' 'をエスケープしますが、インデックス文字列の末尾に' ''文字を追加するのはちょっと面白いようです。これはおそらく最初にすべての指標が正しくない原因となっています。 – GKnight
HTMLフォームを投稿すると、フィールド名が表示されます。 –