複数のフィールドセットを含めるajaxフォームを実行しているときに、これに遭遇しました。雇用申請書を例にとってみましょう。私は1つのプロのリファレンスセットから始め、「さらに追加」というボタンがあります。これは、$ countパラメーターを使用してajax呼び出しを実行し、入力セット(名前、連絡先、電話など)を再度含めます。これは、次のようなことを行うため、最初のページの呼び出しで正常に機能します。
<?php
include('references.php');`
?>
ユーザーがajax呼び出しを行うボタンを押すとajax('references.php?count=1');
、references.phpファイル内に次のようなものがあります。
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
また、パラメーターを渡すサイト全体に、このような他の動的インクルードがあります。この問題は、ユーザーが送信を押してフォームエラーが発生した場合に発生します。したがって、動的にインクルードされる追加のフィールドセットを含めるためにコードを複製しないように、適切なGETパラメーターを使用してインクルードを設定する関数を作成しました。
<?php
function include_get_params($file) {
$parts = explode('?', $file);
if (isset($parts[1])) {
parse_str($parts[1], $output);
foreach ($output as $key => $value) {
$_GET[$key] = $value;
}
}
include($parts[0]);
}
?>
この関数はクエリパラメータをチェックし、それらを$ _GET変数に自動的に追加します。これは私のユースケースではかなりうまくいきました。
呼び出されたときのフォームページの例を次に示します。
<?php
for ($i=0; $i<12; $i++) {
if (isset($_POST['references_name_'.$i]) && !empty($_POST['references_name_'.$i])) {
include_get_params(DIR .'references.php?count='. $i);
} else {
break;
}
}
?>
特定のユースケースに対応するためにGETパラメータを動的に含めるもう1つの例。お役に立てれば。このコードは完全な状態ではないことに注意してください。ただし、これで、誰もがユースケースをうまく始めることができます。