私は週末中ずっとこれに取り組んできましたが、うまくいきません。postではなくgetを使用して機能させることができます。Laravel 4とjqueryを使用しています。
私のJSは次のようになります:
$('.status').on('click', function(){
var $modal = $('#ajax-modal');
var id = $(this).attr("id");
setTimeout(function(){
$modal.load('../status/'+id, '', function(){
$modal.modal();
});
});
});
これにより、ブートストラップ モーダルが正常に開き、ステータス ページが読み込まれます。そのページで、ユーザーの ID を持つボタンを設定し、それがクリックされると、別の JS スニペットを呼び出します。
$modal.on('click', '.update', function(){
$modal
.find('.modal-body')
.html('<div class="progress progress-striped active"><div class="bar" style="width: 100%;">Processing ...</div></div>');
var PostData = 'UserId='+$(this).attr("id");
$.ajax({
type: "POST",
url: "",
data:PostData,
success: function(msg){
$('.update').prop('disabled', true);
setTimeout(function(){
$modal
.find('.modal-body')
.html('<div class="alert-show-success"><img src="../../../public/assets/img/icons/accept.png" />This user was successfully de-activated!</div>');}, 1500);
},
error: function(){
//alert("failure");
setTimeout(function(){
$modal
.find('.modal-body')
.html('<div class="alert-show-failed"><img src="../../../public/assets/img/icons/failed.fw.png" />There was an error processing this request!</div>');}, 1500);
}
});
});
モーダルは正常にロードされ、ステータス ページは正常に検出されますが、コントローラーでは実際には何も起こりません: (テストのために 2 をハードコーディングしました。
public function postStatus()
{
DB::table('users')
->where('id', 2)
->update(array('activated' => 0));
}
何が欠けているのかわからない。どんな助けでも大歓迎です。