AJAX を使用して PHP を介して SQL データベースを編集すると、問題が発生します。実際には機能しますが、「削除」ボタンをクリックし、ページを更新して機能していないことを確認してから、まったく同じことを再度実行する必要があります。ページをリロードする前に数秒待つこともあります. とても奇妙に思えます。
これは私のHTMLとJSです
<html>
<script type="text/javascript">
$("#placeTable").on('click', 'button.remove', function(e){
var targ = e.target;
var id = $(targ).attr('data-id');
bootbox.confirm("Are you sure you want to remove?", function(result) {
if (result == true) {
$.post('/removelocation', {lid : id}, function(){
$(targ).closest('tr').remove();
})
}
})
})
</script>
<table id="placeTable" class="table table-hover table-condensed">
<tr>
<th>Date</th>
<th>Place</th>
<th>Comments</th>
<th>Actions</th>
</tr>
{% for locat in location %}
<tr>
<td data-id="{{locat.getID}}">{{locat.date}}<br/>{{locat.time}}</td>
<td data-id="{{locat.getID}}">{{locat.name}}</td>
<td data-id="{{locat.getID}}">{{locat.description}}</td>
<td>
<button data-id="{{locat.getID}}" class="remove btn btn-link"><i class="icon-remove"></i></button>
<button data-id="{{locat.getID}}" class="edit btn btn-link"><i class="icon-edit"></i></button>
</td>
</tr>
{% endfor %}
</table>
<div id="editmodal" class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="form-vertical" action="" method="POST">
<div class="joshPad">
<fieldset>
<label for="logPlaceChange">Place Name</label>
<input type="text" id="logPlaceChange" name="logPlaceChange"></input>
<label for="logPlaceDescriptionChange">Comments</label>
<textarea rows="3" id="logPlaceDescriptionChange" name="logPlaceDescriptionChange"></textarea>
<label class="checkbox">
<input type="checkbox" name="logCurrentPlace"> Use my location</input>
</label>
</fieldset>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal" aria-hidden="true">Close</a>
<a href="#" class="btn changeSubmit">Save changes</a>
</div>
</div>
</html>
これは私のPHPです
<?php
case 'removelocation' :
R::trash(R::load('location', $_POST['lid']));
//I HAVE ALSO TRIED THIS TO TRASH ELEMENT AND BEFORE USING AJAX WHEN USING A SIMPLE POST FORM BOTH WORK FOR ME;
$locationID = $_POST['lid'];
$locat = R::load('location', $locationID);
$usery = R::load('user', $_SESSION['user']->getID());
R::trash($locat);
R::dependencies(array('location'=>array('user')));
unset($usery->ownLocation[$locationID]);
R::store($usery);
exit;
?>
なぜそれが適切に機能しないのかを理解するための助けをいただければ幸いです。ありがとう