1 から 31 までの数字を含む select タグを持つフォームがあります。私がやろうとしているのは、ユーザーが変更した場合に select タグの値でデータベースを更新することです (デフォルト値はデータベースの値です$drop_d
) 。ページをまったくリロードする必要はありません。次のコードは機能していないようです。データを ajax に送信する方法に問題があると思います。
この変数には、デフォルト値が含まれています。
$drop_d = $e_r[drop_d];
フォーム:
<form> Number of days: <select name="dropD" id="dropID"> <?php for($i=1; $i<=31; $i++){ ?> <option value="<?php echo $i;?>" <?php if($i==$drop_d){ ?> selected="selected" <?php } ?> > <?php echo $i; } ?> </select> </form> <br />
アヤックス:
<script>
$('#dropID').change(function(){
alert(1);
var url = document.URL;
var blah = $('#dropID').val()
alert(blah);
alert(url);
$.ajax({
type: 'POST',
url: url,
data: {newFieldValue: blah},
dataType: 'html'
}).done( function(){
alert(1);
blah.hide();
});
});
</script>
データベースの更新:
<?php
$newFieldValue = $_POST['newFieldValue'];
$updateD = 'UPDATE en SET drop_d = $newFieldValue WHERE name=$name;
mysql_query($updateD);
?>