[英]Ajax post a form to controller (store) in Laravel
我設法創建了一個表單,將PHP中的數據發布到商店控制器。 它運行良好,但現在我嘗試將其轉換為可以發出Ajax請求的位置。
我不能使它工作。 單擊提交時,沒有消息,也沒有頁面刷新,也沒有數據存儲。 Google CHrome開發人員工具的網絡標簽顯示瀏覽器向Leads控制器發出了發布請求。 這就是我得到的,什么地方出了問題?
create.blade.php(查看)
{{ Form::open(['route'=>'leads.store', 'method'=>'post', 'class'=>'formcontainer', 'id'=>'leadscreate']) }}
{{ Form::label('nomopportunite','Nom du lead')}}
{{ Form::text('nomopportunite', '', array('id'=>'nomopportunite1', 'class'=>'form-control', 'placeholder'=>'Nom du lead')) }}
{{ Form::label('statut','Statut')}}
{{ Form::select('statut', array('1' => 'Premier contact', '2' => 'En négociation', '3' => 'Fermé - Gagné', '4' => 'Fermé - Perdu'), '', array('id'=>'statut1')) }}
{{ Form::label('valeur','Valeur')}}
{{ Form::text('valeur', '', array('id'=>'valeur1', 'class'=>'form-control', 'placeholder'=>'Valeur ($)')) }}
{{ Form::submit('Ajouter', array('class'=>'btn btn-primary')) }}
{{ Form::close() }}
javascript ajax部分
jQuery( document ).ready(function() {
$('#leadscreate').on('submit', function(){
$.post(
$(this).prop('action'), {
"_token": $( this ).find( 'input[name=_token]' ).val(),
"nomopportunite": $( '#nomopportunite1' ).val(),
"statut": $( '#statut1' ).val(),
"valeur": $( '#valeur1' ).val()
},
function(data){
//response after the process.
},
'json'
);
return false;
});
});
LeadsController.php(商店)
public function store() {
if ( Session::token() !== Input::get( '_token' ) ) {
return Response::json( array(
'msg' => 'Erreur!'
) );
}
$nomopportunite = Input::get( 'nomopportunite' );
$statut = Input::get( 'statut' );
$valeur = Input::get( 'valeur' );
$response = array(
'status' => 'success',
'msg' => 'L\'opportunité a bien été ajoutée!',
);
return Response::json( $response );
}
感謝Alpha指出我的控制器中缺少某些內容。 我對此進行了修改,現在它可以工作了(數據保存在數據庫中)。 希望它會有所幫助。
public function store() {
if ( Session::token() !== Input::get( '_token' ) ) {
return Response::json( array(
'msg' => 'Erreur!'
) );
}
$response = array(
'status' => 'success',
'msg' => 'L\'opportunité a bien été ajoutée!',
);
$rules = array(
'nomopportunite' => 'required',
'statut' => 'required',
'valeur' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::back()
->withInput()
->withErrors($validator);
} else {
$lead = new Lead;
$lead->nomopportunite = Input::get('nomopportunite');
$lead->statut = Input::get('statut');
$lead->valeur = Input::get('valeur');
$lead->save();
return Response::json( $response );
}
}
並且我還修改了jQuery腳本以向用戶提供反饋:
jQuery( document ).ready(function() {
$('#leadscreate').on('submit', function(){
$.post(
$(this).prop('action'), {
"_token": $( this ).find( 'input[name=_token]' ).val(),
"nomopportunite": $( '#nomopportunite1' ).val(),
"statut": $( '#statut1' ).val(),
"valeur": $( '#valeur1' ).val()
},
function($response){
$('#messagetop').slideToggle();
},
'json'
);
return false;
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.