こんにちは、次の問題があります。
検索エンジン用のフィルターを作成したいと思います。特定の検索用語とそれぞれのチェックボックスの横にいくつかの入力フィールドがあります。次のようになります。
入力フィールド a: [ _ ____ ] a のフィルター: オン/オフ: [ ]
入力フィールド b: [ _ ____ ] b のフィルター: オン/オフ: [ ]
入力フィールド c: [ _ ____ ] c: のフィルター on/off: [ ]
そのコード構造は次のとおりです。
まず、入力フィールドが空で、チェックボックスがオンに設定されているかどうかを確認します。チェックされている場合は、送信後にチェックが外されます。逆に、入力フィールドだけが入力され、チェックボックスがチェックされていない場合も、エラーが発生し、フィルターが機能しないというエラーが発生します。だから私は各フィルターに次のような独自のエラー配列を使用しています(the name and value of the first checkbox is name="filter_a" value="1")
:
...
$checkbox_filter_a = $db->real_escape_string(htmlentities(trim($_POST['filter_a'])));
...
$filter_a = (!empty($checkbox_filter_a)) ? 1 : 0;
...
$errors_a = array();
if ($filter_a == 1){
if (empty($input_a)){
$errors_a[] = 'the filter needs some input';
}
}
if (!empty($input_a)){
if ($filter_a == 0){
$errors_a[] = 'filter is not activated';
}
}
エラーがなく、両方の基準が満たされている場合、フィルターはオンまたはオフのいずれかになります。そのため、論理的な背後にあるのは、ページをロードするときにチェックボックスをオフにする必要があるということです。フィルタリングする基準を考慮した後、オンになっています。
以下の条件でチェック済みまたは未チェックのステータスを表示するには、送信後にチェック済みかどうかを確認します。そのため、入力フィールドの後のチェックボックスの部分である各フィルター(それぞれのcheckbox_filter_b、...)にこのコードがあります:
<?php
if (checkbox_filter_a == 0 ) {
echo '<input type="checkbox" name="checkbox_filter_a" value="1" checked/>';
}else {
echo '<input type="checkbox" name="checkbox_filter_a" value="1"/>';
}
?>
まったく満たさないもの。これは、次の問題によるものです。
ページをロードすると、すべてのチェックボックスがオフになっていることが表示されます。入力が入力されていないか、これらのフィルターのいずれかのチェックボックスをオンにしただけでエラーを発生させようとすると、送信後に他のすべてのチェックボックスが自動的にオンになります。
私を助けてくれる人がいれば、本当に感謝しています。どうもありがとう。