Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Arno Welzel Newsgroups: de.comp.lang.javascript Subject: Re: Generelles: per JS neue Seite Aufbauen Date: Mon, 22 Mar 2021 19:04:12 +0100 Lines: 46 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net xYFgn4fQ3ipPe6P9J/K19gx+FI1C0LYzcz7b/4+tMcm7k0rPD0 Cancel-Lock: sha1:jP3fawWPlXhAU8/R/JSLVQcHAdk= In-Reply-To: Xref: csiph.com de.comp.lang.javascript:5256 Jan Novak: > ich habe eine generelle Frage zum Vorgehen von Seitenabläufen mit > Javascript. > > Ich habe eine Tabble mit Werten, welche per JS aufgebaut wurde. Nach > einem Klick auf einen Wert in der Tabelle, soll eine neue Seite > angezeigt werden, wo ich den angeklickten Datensatz editieren kann. Der > Klick auf die Tabelle löst ein JS Event aus, das wiederrum lädt den > Datensatz per Ajax, dieser steht nun in einem objekt zur Verfügung. > Soweit so gut. > > Ich möchte nicht auf der aktuellen Seite (die mit der Tabelle) bleiben > und mir diese dann ausblenden und alle Elemente per JS erstellen, > sondern möglichst eine HTML Vorlage verwenden, in die dann der Datensatz > nur übergeben wird. An die "HTML-Vorlage" wird der Datensatz sicher nicht übergeben, sondern die Angabe, um welchen Datensatz es sich handelt, an ein Script, was dann die Bearbeitung ermöglichen soll. > Wie wäre ein korrektes Vorgehen? Nicht den kompletten Datensatz per XHR abrufen, sondern dem Server sagen, dass er eine Seite erzeugen soll, auf der man den angeklickten Datensatz bearbeiten kann. > Mit "window.location.replace" oder "href" könnte ich auf eine ganz neue > Seite verzweigen, aber das wäre ja ein kompletter Neuaufbau. > Andererseits: wie übergebe ich dann die Daten dorthin? In der URL. Die übliche Lösung wäre, dass jede Zeile in der Tabelle ein eindeutige ID hat, die man als Parameter übergeben kann: window.location.href="http://server.example/edit-record?id= Wobei eben die ID des Datensatzes ist, den man bearbeiten will. Den kompletten Datensatz per XHR zu laden egibt nur dann Sinn, wenn auch die Bearbeitung *ohne* Server-Seite im Client passieren soll, *ohne* eine andere Seite dafür anzuzeigen. -- Arno Welzel https://arnowelzel.de