您好再次SO社區後填充視圖與數據庫中的信息。我一直在開發一個網站,到目前爲止它的情況非常好。不過今天一整天尋找一個解決方案,我無法理解,也沒有找到合適的路徑是什麼?如何AJAX請求
我想點擊一個按鈕和一個配置文件頁面,您可以編輯的字段出現後。我可以重定向到我想要的頁面,但我不知道如何發送用戶數據,以便填充字段。
這裏是我的看法
<button class="btn btn-xs btn-warning dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false" style="border-color: black" id="dados_{{ $user->username }}"> Alterar Dados Pessoais
<i class="glyphicon glyphicon-cog"></i>
</button>
這裏我的按鈕代碼按鈕AJAX請求處理
if((this.id).indexOf("dados") != -1){
var content = this.id.replace("dados_", "");
$.get('callPermissions', {usernameSend:content, '_token': $('meta[name=csrf-token]').attr('content'),}, function(data){
window.location.replace('settings');
});
這裏是我的callPermission控制器
public function callPermissions(Request $request)
{
if($request->ajax()){
$usernames = Input::get('usernameSend');
if(isset($usernames)){
$user = User::Where('username', '=', $usernames)->first();
$returnHTML = view('userOptions.settings')->render();
return view('userOptions.settings');
}else{
Log::warning("Username não existe na base de dados.");
}
}
}
,在這裏我的設置控制器
public function settings(Request $request)
{
return view('userOptions.settings');
}
這裏是路線
Route::get('/callPermissions', '[email protected]');
我知道控制器是錯誤的,從我讀過,我應該驗證是否AJAX是成功的,如果它是處理我的AJAX請求。但從我所瞭解的情況來看,我根本沒有使用控制器(儘管它已經到了那裏)。我應該如何發送用戶信息(在這種情況下是用戶名,然後我可以從數據庫中獲取所有信息),然後將其發送到視圖?我一直在尋找,並在控制器不工作,嘗試的東西,不工作...因爲回報視圖(「your_view」)。
很抱歉,如果我一直困惑,如果你需要更多的信息,隨便問!
感謝您的幫助!
編輯:如果我回到這個控制器
return view('userOptions.settings', compact('user'));
上,做一個與Ajax請求的節目上面更換和添加這我得到的設置視圖
<p> {{ $user->name }} </p>
以下錯誤未定義的變量:用戶(查看:C:\ wamp64 \ www \ siteXL \ ideiasxl \ resources \ views \ userOptions \ settings.blade.php)
反正有一個緊湊都發送參數或者我需要通過鏈接發送?正在避免在網址上顯示用戶名。
EDIT2:爲了進一步澄清,此按預期工作
<button onclick="window.location='{{url('/settings/' . $user->username)}}'" type="button" id="dadosPessoais" class="btn btn-default">Alterar Dados Pessoais
<i class="glyphicon glyphicon-wrench"></i>
</button>
但我儘量不通過URL發送ID和用戶名。
如果這無法實現的情況是好的,但如果有一種方法,我無法找到它,這就是爲什麼我問
你會如何向用戶發送ID(例如):
然後,在JavaScript中,你可以使用像這樣獲得的價值到Ajax調用的設置頁面?我知道如何通過控制器做到這一點,但因爲我使用AJAX請求,返回**視圖('path.to.settings',compact('user')** - 例如)不起作用!我想發送到設置視圖的用戶ID 我將更新主帖 感謝您的答案,雖然 – AimForNuts
一種方法是使用窗體中的隱藏字段,並將值設置爲用戶定義的值, > id。然後,你可以使用jQuery來獲得該字段的值,例如,我將用一個建議來編輯答案 – Laerte
噢,那是有道理的!謝謝你的幫助 – AimForNuts