フィルタリングしたいオプションを使用して2番目のフォームを作成します。この部分はデータに固有ですが、次のようなものが必要です。
<form id="search-form">
<label>Name:</label><input type="text" name="patient-name"></input>
</form>
クエリ文字列を作成する必要があります(GETを使用すると、作業が簡単になります)。ラジオボタンなどを使用する場合は、微調整が必要になりますが、一般的な考え方は次のとおりです。
function getSearchParameters () {
var form = document.getElementById('search-form');
var inputs = form.getElementsByTagName('input');
var result = '';
var i;
for (i = 0; i < inputs.length; i++) {
if (inputs[i].value) {
result += "&" + inputs[i].name + "=" + inputs[i].value;
}
}
return result;
}
患者データリンクのonClickハンドラーで、この関数を呼び出し、その結果をクエリ文字列に追加します。
element.onclick = function () {
var patientDataUrl = '/patients.php?param1=someValue';
patientDataUrl += getQueryParameters();
/* then do your ajax stuff as normal */
};
次に、サーバー側で、patients.php内で、検索フィールドの存在を確認します。
if(isset($_GET['patient-name'])) {
$patient_name = mysql_real_escape_string($_GET['patient-name']);
$query = "SELECT * FROM `patients` WHERE `patient_name`='$patient_name';";
} else {
$query = "SELECT * FROM `patients`;";
}
(ストリングを消毒するようにしてください!)
JSフレームワークを検討して、作業をはるかに簡単にすることをお勧めします(たとえば、jQueryを使用すると、POSTを介してこれを送信したり、を介してGETクエリ文字列に簡単にシリアル化したりできます.serialize()
)