私は、選択した内容に応じて入力方法を変更するためにJavaScriptを使用する検索フォームを用意しています。したがって、「名前」を選択した場合はテキストボックスが表示されますが、「評価」が選択されている場合は1-5のドロップダウンリストが表示されます。PHPで検索クエリを消去する方法は?
<form method="GET" action="results_sample.php">
<p>Search by: <!-- Dropdown list allows users to search by different elements -->
<select id="searchtype" name="searchtype" onchange="changeview()"> <!-- onchange calls changeview() every time the dropdown value is changed. Allows ratings to be seen -->
<option value="School">School</option>
<option value="Name">Name</option>
<option value="Rating">Rating</option>
<option value="Class Location">Class Location</option>
<option value="Subject">Subject</option>
</select>
</p>
<span id="standard" style="display:inline">Search Query: <input type="text" name="query"></span>
<span id="locationsearch" style="display:none"> (Longitude-Lattitude pair) <input type="number" id="longitude" step="any"> - <input type="number" id="latitude" step="any"> </span>
<span id="ratevalue" style="display:none"> Choose rating:
<select id="ratings">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</span>
<p><input type="submit"></p>
</form>
results_sample.php内の関連するコードは次のとおりです。私は、検索クエリにテキストを入力し、その後評価に切り替え、そしてしようとした場合
1):
<?php
if (isset($_GET['searchtype'])) {
if (!empty($_GET['query'])) {
$search = $_GET['query'];
} elseif (!empty($_GET['ratings'])) {
$search = $_GET['ratings'];
} elseif (!empty($_GET['longitude']) || isset($_GET['latitude'])) {
$search = 'more to come...';
}
echo '<p>Entries containing "', $search, '" in "', $_GET['searchtype'], '"</p>';
}
?>
私は2つの問題を抱えています評価で検索するには、まだ背景にテキストボックスが表示されず、代わりにその情報が使用されます。
2)テキストボックスが空で、Longitude-Latitudeで検索する場合、Ratingはデフォルトの1(背景には表示されません)に設定され、その値が使用されます。
'$ _GET ['searchtype']'をチェックし、その値に応じて適切な '$ _GET'変数を選択してください。またはjsで他のすべてのフィールドをクリアします。 –