Ich speichere Daten in der Datenbank, indem ich Variable durch Ajax übergebe und sie in der Steuerung benutze.Laravel gibt keine Seite zurück
Speichern funktioniert gut, es speichert Daten in einer Datenbank, aber das Problem ist gespeicherte Seite anzuzeigen. Datenbank hat 2 Felder, Name und HTML. Name ist offensichtlich Name der Website und HTML ist reiner HTML-Code. so, wenn Benutzerseite mit dem Namen speichert ‚zufällig‘ Ich mag HTML-Seite auf ihn anzuzeigen localhost/random
Fehlermeldung mit mir erhalte, ist:
Der Versuch, Eigentum von Nicht-Objekt (Ansicht zu erhalten: C : \ xampp \ htdocs \ fyproject \ resources \ Ansichten \ Layouts \ website.blade.php)
Hier ist, was ich bisher getan haben:
Ajax:
var web_name;
function updateDatabase(newCode, name_website)
{
code2 = document.getElementById("content-link2").innerHTML;
web_name = ($('#website_name').val());
// make an ajax request to a PHP file
// on our site that will update the database
// pass in our lat/lng as parameters
$.post('http://localhost/template', {
_token: $('meta[name=csrf-token]').attr('content'),
newCode: (code2),
name_website: (web_name),
})
.done(function() {
})
.fail(function() {
alert("error");
});
}
Controller:
public function postDB(Request $request) {
$newName = $request->input('name_website');
$newLat = $request->input('newCode');
$websites = new Website();
$websites->name = $newName;
$websites->html = $newLat;
$websites->save();
$name = $newName;
return redirect($name);
}
public function website($name) {
$website = Website::where('name', $name)->first()->html;
// Render resources/views/template.blade.php or any view you want
// and pass the data. E.g. $website, so you can access $website->html in your view.
return view('layouts/website', compact('name'));
}
}
Routen:
Route::get('home', '[email protected]');
Route::get('template', '[email protected]');
Route::post('template', '[email protected]');
Route::get('logout', '[email protected]');
Route::get('/{name}', '[email protected]');
website.blade.php:
@extends('layouts.master') @section('title', 'Website Builder') @section('content')
<meta name="csrf-token" content="{{ csrf_token() }}" />
{{html_entity_decode($name->html)}}
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
axios.get('/localhost/name').then(
html => document.querySelector('html').innerHTML = html
);
</script>
</html>
@endsection @show
Was ist los?
Redirect ($ name); und window.location mit neu laden der Seite, benötigen Sie Ihre HTML, ohne die Seite neu zu laden? oder Sie müssen nur Ergebnisse anzeigen, sobald der Benutzer die Daten speichert? –
Ergebnis anzeigen, sobald Benutzer die Daten speichern – Przemek