HTML フォームを修正することを検討してください。100 個の新しい変数を作成する代わりに、すべての連絡先を配列に割り当ててから、配列のインデックスでそれらを参照できます。
HTML
<input type="text" name="contacts[]" value="Contact 1 name"/>
<input type="text" name="contacts[]" value="Contact 2 name"/>
// etc...
PHP
$contacts = $_POST['contacts'];
var_dump($contacts);
// prints array(0 => 'Contact 1 Name', 1 => 'Contact 2 Name'...
配列になっているので、たとえば連絡先を参照して、$contacts[34]
それが有効なエントリになることを知ることができます。
編集
実際の例:
<?php
if (isset($_POST['contacts'])) {
$contacts = $_POST['contacts'];
echo "<p>The contacts are below:</p>";
print_r($contacts);
} else {
echo "<p>Please enter the contacts</p>";
}
?>
<form method="post" action="">
<?php for($x = 0; $x < 100; $x++): ?>
<input type="text" name="contacts[]" value="<?php echo (isset($contacts[$x])) ? $contacts[0] : ''; ?>"/>
<?php endfor; ?>
<input type="submit" name="submit" value="submit"/>
</form>
編集 2
フォームをループにしました。つまり、すべての連絡先入力が作成されます。これに加えて、すでにフォームを投稿している場合、各フィールドには正しい連絡先の値が含まれています。
echo isset($contacts[$x])) ? $contacts[$x] : '';
構文がわからない場合ternary operator
は、1 行のif/else
ステートメントです。
ここでもテストできます: http://phpfiddle.org/api/run/ugb-cta