Reputation: 2972
I am trying to save user input into database using Ajax in Laravel-5.2.
This is my route.php
Route::get('xxxxx/{task_id?}',function($task_id){
$task = App\XXXXX::find($task_id);
return response()->json($task);
});
Route::put('xxxxx/{task_id?}',function(Request $request,$task_id){
$task = App\XXXXX::find($task_id);
$task->Name = $request->Name;//
$task->Email = $request->Email;
$task->Telephone = $request->Telephone;
$task->save();
return response()->json($task);
});
In my view, the save button is used as.
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="btn-save" value="update">Save changes</button>
<input type="hidden" id="task_id" name="task_id" value="0">
</div>
my js file created using this tutorial..
I am getting the popup, Save
button is not working.
What is the wrong here? I m new for Ajax.
Thanks in advance.
Upvotes: 0
Views: 505
Reputation: 21
This is route.php
Route::match(['get','post'], 'my/save-data','MyController@SaveData');
This is your html:
Save changesThis is your Controller file: MyController.php
public function SaveData( Request $request ) { $input = $request->all();
try{
// You can now use the Subscribe model without its namespace
// as you referenced it by its namespace in a use statement.
$subscribe = new Subscribe();
// If you want to use a class that is not referenced in a use
// statement then you must reference it by its full namespace.
$otherModel = new \App\Models\Other\Namespace\OtherModel();
$otherModel = $input['Name'];
$otherModel = $input['Email'];
$otherModel = $input['Telephone'];
// save
$otherModel->save();
}
catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e)
{
\Log::error( $e->getMessage(), $context );
}
catch (Exception $e){
\Log::error( $e->getMessage(), $context);
}
return response()->json( ['status'=>'success', 'message'=>'Completed successfully'] );
}
This is your Js file:save.js
function save() {
getData = {
name: "value", // from get eliment
email: "value", // from get eliment
telephone: "value" // from get eliment
};
$.ajax({
type: 'post', // POST Request
url: 'localhost/my/save-data', // localhost/my/save-data // Url of the Route (in this case user/save not only save)
data: getData, // Serialized Data
beforeSend: function (xhr) {
// Function needed from Laravel because of the CSRF Middleware
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-CSRF-TOKEN', token);
}
},
success: function (data) {
// Successfuly called the Controler
// Check if the logic was successful or not
if (data.status == 'success') {
console.log('alles ok');
} else {
console.log(data.msg);
}
},
error: function (data) {
// Error while calling the controller (HTTP Response Code different as 200 OK
console.log('Error:', data);
}
});
}
Upvotes: 1