私はこれに頭を悩ませています-MySQLデータベースを検索し、結果をテーブルに返すページがあります。ユーザーが結果を更新できるようにして、MySQLデータベースを更新できるようにしたい。最初の部分は問題なく機能します。ページに検索ボックスがあり、jQuery / ajaxを使用してデータベースにクエリを実行し、結果を表示します。例:
<form class="well" id="jquery-submit-ajax" method="post">
<input type="text" name="userSearch" placeholder="Search…">
<label>Name/Email/id</label>
<Br />
<input type="submit" id="searchButton" value="Search">
</form>
<div class="alert alert-success hide">
<div id="success-output" class="prettyprint"></div>
</div>
<div id="loading-image" class="alert hide" style="text-align:center">
<img src="../images/ajax-loader.gif" /></div>
<div class="alert alert-error hide">
<div id="error-output" class="prettyprint"></div>
</div>
</div>
およびjQuery:
$("#jquery-submit-ajax").submit(function(e) {
$('#loading-image').fadeIn();
$.ajax({
type: "POST",
url: "jquery-ajax-control.php",
data: $(e.target).serialize(),
dataType: "html",
beforeSend:function(){
$('.alert-error,.alert-success').hide();
},
error: function(jqXHR, textStatus, errorThrown){
$('#loading-image').hide();
$('.alert-error').fadeIn();
$('#error-output').html(errorThrown);
},
success: function(data){
$('#loading-image').hide();
$('.alert-success').fadeIn();
$('#success-output').html(data);
}
});
return false;
});
したがって、結果は各結果のテーブルに解析されます。そのテーブル内には、送信ボタンのあるフォームがあります。例えば:
<form method="post">
<table>
<tr>
<td><input type="text" class="editbox" name="subs-expiry" value="<?php echo $expiry_date; ?>"</td>
</tr>
</table>
<input type="submit" class="updateSubsButtons" value="Update" />
</form>
このフォームをjQuery/Ajax経由で再度送信しようとしていますが、機能しません。[更新]ボタンを押すと、ページ全体が更新されます。このボタンのjQueryを削除して、ボタンが押されたときにアラートを表示するようにしましたが、それでも機能しません。
$(".updateSubsButtons").on("submit", function(e){
alert("clicked");
e.preventDefault();
});
Chromeデバッガーを使用すると、関数のブレークポイントがヒットすることはないので、jQueryがボタンを見つけられない可能性がありますか?.on()関数と.live()関数を試しましたが、どちらでも同じ結果が得られます。ここで何が起こっているのか本当にわからないので、どんな助けでもありがたいです!