Я пытаюсь создать и редактировать, как facebook, через ajax. ajax scripts готов для меня и html, как показано ниже ... но я не знаю, как это сделать.
Код HTML & .JS:
$(document).ready(function(){
$(".editlink").on("click", function(e){
e.preventDefault();
var dataset = $(this).prev(".datainfo");
var savebtn = $(this).next(".savebtn");
var theid = dataset.attr("id");
var newid = theid+"-form";
var currval = dataset.text();
dataset.empty();
$('<input type = "text" name = "'+newid+'" id = "'+newid+'" value = "'+currval+'" class = "hlite">').appendTo(dataset);
$(this).css("display", "none");
savebtn.css("display", "block");
});
$(".savebtn").on("click", function(e){
e.preventDefault();
var elink = $(this).prev(".editlink");
var dataset = elink.prev(".datainfo");
var newid = dataset.attr("id");
var cinput = "#"+newid+"-form";
var einput = $(cinput);
var newval = einput.attr("value");
$(this).css("display", "none");
einput.remove();
dataset.html(newval);
elink.css("display", "block");
});
});<div id = "wrapper">
<section id = "core">
<div class = "panel panel-default" style = "margin-top: 30px">
<div class = "gear">
<label>Primary E-Mail:</label>
<span id = "pemail" class = "datainfo">[email protected]</span>
<a href = "#" class = "editlink">Edit</a>
<button type = "button" class = "savebtn btn btn-primary btn-xs">Save</button>
</div>
</div>
</section>
</div>Выход:
Контроллер:
\DB::table('users')->where('id', $id)->update([
[
'email' => $request->input('pemail'),
]
])->where('id', $id);
Я уже сделал это fullname attribute added to the protected $fillable
Но это не единственное, что можно сделать - поделиться своими успехами / усилиями по другой части задачи.
Я не могу понять, что мне делать в контроллере, потому что это ajax. Я не знаю, нужен ли ему json или что-нибудь в этом роде. как связать это с кодом ajax. @





No need to use vue.js. Just use simple jQuery code as below. Hope it's help.
Код jQuery:
Add event on save button On Click
onclick = "saveProfile(INPUT ID HERE, RECORD ID)"
Добавьте код jquery в нижний колонтитул или файл просмотра
function saveProfile(id, inputid) {
var value = $(inputid).val();
$.ajax({
headers: {'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content') },
url: "{{URL::to('admin/updateProfile')}}",
data:{'id' : id,'value' : value,'inputid':inputid},
method:'POST',
success: function( resp ) {
alert('update');
},
error: function( req, status, err ) {
console.info( 'something went wrong', status, err );
}
});
}
Код контроллера
public function updateProfile(REQUEST $request){
$id = $request->id;
$value = $request->value;
$inputid = $request->inputid;
//for examaple - Input textbox id is : pemail-form
if ($inputid == 'pemail-form'){
DB::table('table_name')->where('id', $id)->update(['email' => $value]);
}
if ($inputid == 'fullname-form'){
DB::table('table_name')->where('id', $id)->update(['fullname' => $value]);
}
}
Вы просто пытались этого добиться? Я имею в виду, что до сих пор, похоже, нет проблем, просто запишите простой запрос ajax на сервер (или просто отправку формы), а затем вы можете просто обновить свою таблицу, используя такую модель:
\App\User::find($id)->update(['fullname' => $request->input('pemail')]);В этом отношении вы необходимо добавить атрибутfullnameв массивprotected $fillableвашей модели, ознакомьтесь с документацией по обновлению записей и работе с моделями.