我有一個表單將項目添加到收藏夾,也刪除它。關於提交的切換窗體 - jQuery(Ajax)
比方說,這是形式的添加和刪除:
@if($checkIfFavIsAdded == 0)
{!! Form::open(['id' => 'ajax-form-add', 'style' => 'float:right']) !!}
...
<button class="fa fa-star-o fa-2x" tool-tip-toggle="tooltip-demo" id="addFavbutton" title="Add item to favorites" style="color:#fd8809"></button>
{!! Form::close() !!}
@else
{!! Form::open(['id' => 'ajax-form-delete', 'style' => 'float:right']) !!}
...
<button class="fa fa-star-o fa-2x" tool-tip-toggle="tooltip-demo" id="addFavbutton" title="Delete item from favorites" style="color:grey"></button>
{!! Form::close() !!}
@endif
這裏,如果該項目被添加到收藏夾我檢查,如果是的話,應該顯示相應的表格。 它可以在頁面重新加載,但我怎麼能在Ajax中做到這一點? 我試圖隱藏並顯示,但沒有成功。它只是隱藏表單而不顯示另一個表單。
<script type="text/javascript">
$("#ajax-form-add").submit(function(event) {
event.preventDefault();
var form = $(this);
$.ajax({
type: "post",
url: "{{ url('addFavorites') }}",
dataType: "json",
data: form.serialize(),
success: function(data){
$("#ajax-form-add").hide();
$("#ajax-form-delete").show();
},
error: function(data){
swal("Error!", "error")
},
complete: function (data) {
}
});
});
</script>
<script type="text/javascript">
$("#ajax-form-delete").submit(function(event) {
event.preventDefault();
var form = $(this);
$.ajax({
type: "post",
url: "{{ url('deleteFavorites') }}",
dataType: "json",
data: form.serialize(),
success: function(data){
$("#ajax-form-delete").hide();
$("#ajax-form-show").show();
},
error: function(data){
swal("Error!", "Item is not available!", "error")
}
});
});
</script>
是的,我的壞。但它不會改變任何事情。它仍然不顯示另一種形式。我正在關注@ Joe的評論,並嘗試在if和else語句中包含這兩種表單,但第一個應該可見,另一個隱藏(反之亦然)。或者嘗試在ajax響應中呈現另一個表單。 – harunB10
@ harunB10真正的問題是,如果條件和其他條件,你正在擰表格。當頁面被渲染時,那麼只有1個窗體會在那裏,如果你運行ajax,由於第二個窗體丟失,它不會顯示任何東西。希望它是有道理的。 –
是的,我明白了。現在我試圖在@if($ checkIfFavIsAdded == 0)'時顯示添加表單併爲隱藏的刪除表單設置可見性。 – harunB10