Я пытаюсь удалить изображение с профиля сайта. Загрузка не работает, но если я хочу удалить вызов ajax не работает правильно. Я новичок и просто играю.
Форма моей головы такая:
{{ $profileImageSection }}
<form
name="update-account"action="{{ route('customer.account.profile.action') }}"accept-charset="UTF-8"enctype="multipart/form-data"class="with-padding with-validation"data-image-action="{{ route('customer.account.profile.image.action') }}"data-image-delete="{{ route('customer.account.profile.image.delete') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input type="hidden" name="account_type" value="_Private" />
<div class="holder message"></div>
Мой ProfileImageSection это:
<section class="profile-image">
<div class="profileimage-round">
@if (empty($image))
<figure class="placeholder"><i></i></figure>
@else
<figure class="placeholder" style="background: url({{ $image }}) no-repeat"></figure>
@endif
</div>
<form class="upload" name="upload-profile-image">
<label>Drope here</label>
<img src="{{ asset('assets/images/loader.gif') }}" />
<a href="#" class="chose">Choose</a>
<input type="file" name="profile" class="updatepic" style="/*display: block !important;*/ opacity: 0"/>
</form>
@if (!empty($image))
<form class="delete" name="delete-profile-image">
<a href="#" class="delete">Delete</a>
<input type="button" name="profile" class="deletepic" style="/*display: block !important;*/ opacity: 0"/>
</form>
@endif
То, что я пробовал с помощью JavaScript, выглядит примерно так:
$('.profile-image .delete a.delete').click(function()
{
$(this).parent().find('.deletepic').click();
});
$.('form[name=delete-profile-image]')({
url: $('form[name=update-account]').data('image-delete'),
type: 'POST',
dataType: 'json'
});
URL-адрес правильный, и я маршрутизирую как:
Route::post('/delete', array(
'as' => 'customer.account.profile.image.delete',
'uses' => 'UserProfileController@postImage'
));
Но это не работает. Я много пробовал и больше не могу найти решение. Я думаю, что маршрутизация не вызывает. Может кто-нибудь мне помочь?
Пару вопросов я вижу ..
Если вы используете помощники по форме ( Form::open()
/ Form::close()
) вам не нужно будет включать скрытый элемент токена CSRF вручную. Однако большая проблема заключается в вашем JavaScript:
$('.profile-image .delete a.delete').click(function() {
$(this).parent().find('.deletepic').click();
});
$.('form[name=delete-profile-image]')({
url: $('form[name=update-account]').data('image-delete'),
type: 'POST',
dataType: 'json'
});
Где звонок AJAX? (Подсказка, его просто нет …) Почему бы элементу привязки вызвать щелчок по скрытой кнопке внутри формы, когда вы можете просто отключить вызов AJAX на самой привязке? Попробуйте изменить свой HTML на что-то вроде этого …
@if (!empty($image))
<a href="#" class="delete">Delete</a>
{{ Form::open(array('url' => route('customer.account.profile.image.delete'), 'style' => 'display: none', 'id' => 'image_delete')) }}
{{ Form::text('image', $image) }}
{{ Form::close() }}
@endif
И обновите ваш javascript примерно так:
$('.profile-image .delete a.delete').click(function() {
$('#image_delete').submit()
});
Других решений пока нет …