まず、フォームは次のようになります。
<form action="process.php" method="post" id="myForm">
<select name="site" id="site">
<option>Apple</option>
<option>Google</option>
<option>Microsoft</option>
</select>
<input type="hidden" name="date" value="01/05/2012" />
<input type="hidden" name="city" value="London" />
<input type="hidden" name="address" value="[... address ...]" />
</form>
次に、AJAXを介して送信するには、次のserialize()
メソッドを使用してフォームデータを収集します。
$("#site").on("change", function() {
var $form = $("#myForm");
var method = $form.attr("method") ? $form.attr("method").toUpperCase() : "GET";
$.ajax({
url: $form.attr("action"),
data: $form.serialize(),
type: method,
success: function() {
// do stuff with the result, if you want to
}
});
});
または、AJAXを使用せず、標準のフォーム送信のみを使用する場合は、次のようにフォームをトリガーして送信できます。
$("#site").on("change", function() {
$("#myForm").submit();
});