AJAX を使用してこれを行う場合、<form>
コードは必要ありません。コードは、<form>
別のページに投稿していて、とにかくビューが変更/更新されることを期待している場合にのみ役立ちます。
また、<form>
この例のコードを使用すると、「非表示フィールド CURRENT の値を設定する」ボタンを使用して、追加ビットのページが更新されます (jQuery によって挿入された値が失われます)。実際のアプリで問題になる可能性が高いというわけではありませんが、参考までに.
Ajax を JavaScript コードに入れると、次のようになります。
$('#mySelect').change(function() {
var sel = $(this).val();
//alert('You picked: ' + sel);
$.ajax({
type: "POST",
url: "your_php_file.php",
data: 'theOption=' + sel,
success: function(whatigot) {
alert('Server-side response: ' + whatigot);
} //END success fn
}); //END $.ajax
}); //END dropdown change event
PHP ファイルからECHOされたデータは、AJAX 呼び出しの成功関数で HTML ドキュメントに入り、そこで処理する必要があることに注意してください。そこで、受け取ったデータを DOM に挿入します。
たとえば、HTML ドキュメントにid="myDiv"
. PHP からのデータを HTML ドキュメントに挿入するには、行:alert('Server-side response: ' + whatigot);
を次のように置き換えます。
$('#myDiv').html(whatIgot);
プレスト!DIV には、PHP ファイルからエコーされたデータが含まれています。
これは、AJAX を使用した独自の例の実用的なソリューションです。
HTML マークアップ:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#mybutt').on('click', function(e){
e.preventDefault(); //prevent default action
var ct = $('#city').val();
var dt = $('#date').val()
var ty = $('#type').val();
var curr = $('#current').val();
$.ajax({
url: 'result.php',
type: 'POST',
data: 'ct=' +ct+ '&dat=' +dt+ '&t=' +ty+ '&curr=' +curr,
success: function(response){
$('#welcome').html(response);
}
});
});
$('#mycurr').click(function(){
var resp = prompt("Please type something:","Your name");
$('#current').val(resp);
});
}); //END $(document).ready()
</script>
</head>
<body>
<div id="welcome">
<input type="hidden" id="date" name="selected"/>
<select id="city" class="cities" data-role="none" name="City">
<option value="sumwhere">Anyplace</option>
<option value="anutherwhere">Another place</option>
</select>
<select id="type" class="cities" data-role="none" name="Event">
<option value="sumthing">Anything</option>
<option value="anutherthing">Another thing</option>
</select>
<input type="submit" id="mybutt" class="button" value="Ok Go!"/>
<input type="submit" id="mycurr" class="button" value="Set value for hidden field CURRENT"/>
<input id="current" name="current" type="hidden"/>
</div>
</body>
</html>
PHP プロセッサ ファイル: result.php
$ct = $_POST['ct'];
$date = $_POST['dat'];
$typ = $_POST['t'];
$cu = $_POST['curr'];
if ($date == '') {
$date = 'Some other date';
}
$r = '<h1>Results sent from PHP</h1>';
$r .= 'Selected city is: [' .$ct. ']<br />';
$r .= 'Selected date is: [' .$date. ']<br />';
$r .= 'Selected type is: [' .$typ. ']<br />';
$r .= 'Hidden field #CURRENT is: [' .$cu. ']<br />';
$r .= '<h2>And that\'s all she wrote....</h2>';
echo $r;