tag:forum.selfhtml.org,2005:/selfFelder dynamisch füllen wenn Ergebnis vorhanden ist – SELFHTML-Forum2018-07-12T06:17:29Zhttps://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726370#m1726370Meowsalot2018-07-10T19:45:30Z2018-07-10T19:45:30ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo,</p>
<p>ich habe ein kleines Problem wo ich nicht weiter kommen. Folgendes Formular habe ich:</p>
<pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post<span class="token punctuation">"</span></span> <span class="token attr-name">action</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>frm<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>cnt_form_projekt<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>projektID<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Projekt-ID<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>projektID<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>projektID<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Name<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>vorname<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Vorname<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>vorname<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>vorname<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>E-Mail Adresse<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>email<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>eintragen<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>btn<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Speichern<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
</code></pre>
<p>In der Datenbank habe ich eine Tabelle die wie folgendermaßen ausschaut</p>
<pre><code class="block language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token identifier"><span class="token punctuation">`</span>inhaber<span class="token punctuation">`</span></span> <span class="token punctuation">(</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_id<span class="token punctuation">`</span></span> <span class="token keyword">int</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_nummer<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">25</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_name<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_vorname<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_email<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span>
<span class="token punctuation">)</span> <span class="token keyword">ENGINE</span><span class="token operator">=</span>MyISAM <span class="token keyword">DEFAULT</span> <span class="token keyword">CHARSET</span><span class="token operator">=</span>latin1<span class="token punctuation">;</span>
</code></pre>
<p>Jetzt zu meiner Frage, wie kann ich es am einfachsten umsetzten wenn ich im ersten Feld eine Projekt-ID eintrage und es in der Datenbank ein Eintrag gibt dass die weiteren Felder automatisch ausgefüllt werden ohne dass die Seite neu geladen werden? Wir reden von ca. 10 - 25 Einträge, also nicht sonderlich viel.</p>
<p>Bin für jede Hilfe dankbar.</p>
<p>Bis bald!<br>
Meowsalot (Bernd)</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726372#m1726372Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2018-07-10T20:05:18Z2018-07-10T20:05:18ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>@@Meowsalot</p>
<p>Datanbank ist nicht mein Thema, aber <code class="language-sql"><span class="token keyword">DEFAULT</span> <span class="token keyword">CHARSET</span><span class="token operator">=</span>latin1</code>? 2018? Ernsthaft?</p>
<p>LLAP </p>
<div class="signature">-- <br>
<em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann
</div>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726373#m1726373dedlfix2018-07-10T20:27:31Z2018-07-10T20:27:31ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Tach!</p>
<blockquote>
<p>Jetzt zu meiner Frage, wie kann ich es am einfachsten umsetzten wenn ich im ersten Feld eine Projekt-ID eintrage und es in der Datenbank ein Eintrag gibt dass die weiteren Felder automatisch ausgefüllt werden ohne dass die Seite neu geladen werden?</p>
</blockquote>
<p>Zum Beispiel so wie es in der HTTP-Welt gängig ist. Ajax-Request an den Server senden, Ergebnis in die Seite einbauen. Und serverseitig ist das auch kein Hexenwerk: Request entgegennehmen, Datenbankabfrage ausführen, Abfrageergebnis ausgeban, beispielsweise im JSON-Format. Alles keine Raketenwissenschaft.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726374#m1726374Rolf B2018-07-10T20:30:26Z2018-07-10T20:32:14ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo Meowsalot,</p>
<blockquote>
<p>JavaScript ist einfach nicht mein Ding.</p>
<ul>
<li>Meowsalot, April 2018</li>
</ul>
</blockquote>
<p>Angesichts dessen solltest Du neben das Projekt-ID Feld einen Button "ID nachschlagen" setzen, der das Formular abschickt, die fehlenden Daten ergänzt und das Formular neu aufbaut. Affenformular-plus, sozusagen. Der User gibt die ID ein, drückt TAB (kommt idealerweise auf den Suchbutton), drückt ENTER und bekommt die Projektdaten. Serverseitig KÖNNTEST Du in diesem Fall - UND NUR IN DIESEM - über das <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autofocus" rel="nofollow noopener noreferrer">autofocus</a> Attribut erreichen, dass der Cursor bei der Rückkehr gleich auf dem nächsten sinnvollen Feld steht.</p>
<p>Die JavaScript-Idee wäre, sich auf das change-Event des projektId input zu registrieren, aus dem Change-Handler einen Ajax-Call abzusetzen der ein PHP Script von Dir ruft; dieses Script gibt bspw. einen JSON-String zurück, den nimmst Du beim Success-Handler des Ajax-Calls entgegen, holst die Daten 'raus und schreibst sie in die Formularfelder. Das ist keine Raketentechnik, aber für jemanden, der sich mit JavaScript schwer tut, ist es trotzdem eine Herausforderung.</p>
<p>Update: LOL - ich habe das ohne Kenntnis von Dedlfix' Beitrag geschrieben. Ist ja echt die Rakete.</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726386#m1726386pl2018-07-11T06:34:39Z2018-07-11T06:34:39ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo,</p>
<blockquote>
<p>Jetzt zu meiner Frage, wie kann ich es am einfachsten umsetzten wenn ich im ersten Feld eine Projekt-ID eintrage und es in der Datenbank ein Eintrag gibt ..</p>
</blockquote>
<p>Überlege Dir ein Event was gefeuert werden soll. Das löst einen Request aus mit dem Parameternamen <code>id=</code> und dem Wert der sich als <code>encodeURIComponent</code> aus dem value des entsprechenden Eingebfeldes ergibt.</p>
<blockquote>
<p>dass die weiteren Felder automatisch ausgefüllt werden ohne dass die Seite neu geladen werden?</p>
</blockquote>
<p>Dann darf die eingetragene ID aber nur einen Record liefern. Falls das jedoch mehrere sind, musst Du dafür sorgen daß aus diesen ausgewählt werden kann.</p>
<p>Ansonsten: Mit dem Request, siehe oben, geht die eingetippte ID ab zum Server und der sorgt dafür daß exakt(!) ein Record zurückkommt. Also ein Record mit allen Datenfeldern.</p>
<p>Falls es zur requesteten ID keinen Solchen gibt, sollte das dann aber auch im Formular zu sehen sein. Z.b. darurch daß überall <code>undefined</code> drinsteht. Für den Anwender also sichtbar, ob ein legacy Record im formular steht oder ob er einen neuen anlegen soll.</p>
<p>MfG</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726417#m1726417Felix Riestererhttp://felix-riesterer.de2018-07-12T05:17:19Z2018-07-12T05:17:19ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Lieber Meowsalot,</p>
<blockquote>
<pre><code class="block language-sql"> <span class="token identifier"><span class="token punctuation">`</span>pl_name<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_vorname<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
</code></pre>
</blockquote>
<p>das genügt nicht! Nicht nur die 100 Zeichen sind meines Erachtens etwas knapp, auch mehrteilige Vornamen mit abgegrenztem Rufnamen und Namenszusätze können so nicht korrekt erfasst werden. Vielleicht ist das für Deinen Anwendungsfall egal, aber irgendwie empfinde ich das als "am falschen Ende gespart".</p>
<p>Liebe Grüße,</p>
<p>Felix Riesterer.</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726418#m1726418Christian Krusehttps://wwwtech.de/about2018-07-12T05:19:15Z2018-07-12T05:19:15ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo Felix,</p>
<blockquote>
<blockquote>
<pre><code class="block language-sql"> <span class="token identifier"><span class="token punctuation">`</span>pl_name<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
<span class="token identifier"><span class="token punctuation">`</span>pl_vorname<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
</code></pre>
</blockquote>
<p>das genügt nicht! Nicht nur die 100 Zeichen sind meines Erachtens etwas knapp, auch mehrteilige Vornamen mit abgegrenztem Rufnamen und Namenszusätze können so nicht korrekt erfasst werden. Vielleicht ist das für Deinen Anwendungsfall egal, aber irgendwie empfinde ich das als "am falschen Ende gespart".</p>
</blockquote>
<p>Wenn man es genau nimmt, ist die Unterteilung in Vor- und Nachname schon ein Problem. Nicht jeder Mensch hat einen europäischen Namen.</p>
<p>LG,<br>
CK</p>
<div class="signature">-- <br>
<a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a>
</div>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726422#m1726422Meowsalot2018-07-12T05:59:25Z2018-07-12T05:59:25ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo Felix,</p>
<p>wie viele Zeichen würdest du denn für den Vornamen und Nachnamen einplanen?</p>
<p>Bis bald!<br>
Meowsalot (Bernd)</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726419#m1726419Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2018-07-12T05:34:17Z2018-07-12T05:34:17ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>@@Christian Kruse</p>
<blockquote>
<p>Wenn man es genau nimmt, ist die Unterteilung in Vor- und Nachname schon ein Problem. Nicht jeder Mensch hat einen europäischen Namen.</p>
</blockquote>
<p>☞ <a href="https://www.w3.org/International/questions/qa-personal-names" rel="nofollow noopener noreferrer">Personennamen aus aller Welt</a></p>
<p>LLAP </p>
<div class="signature">-- <br>
<em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann
</div>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726423#m1726423Meowsalot2018-07-12T06:00:24Z2018-07-12T06:00:24ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo Christian,</p>
<blockquote>
<p>Wenn man es genau nimmt, ist die Unterteilung in Vor- und Nachname schon ein Problem. Nicht jeder Mensch hat einen europäischen Namen.</p>
</blockquote>
<p>würdest du alles in ein Feld speichern?</p>
<p>Bis bald!<br>
Meowsalot (Bernd)</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726425#m1726425Felix Riestererhttp://felix-riesterer.de2018-07-12T06:06:40Z2018-07-12T06:07:03ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Lieber Meowsalot,</p>
<blockquote>
<p>wie viele Zeichen würdest du denn für den Vornamen und Nachnamen einplanen?</p>
</blockquote>
<p><code class="language-sql"><span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span></code></p>
<p>Liebe Grüße,</p>
<p>Felix Riesterer.</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726426#m1726426dedlfix2018-07-12T06:09:46Z2018-07-12T06:09:46ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Tach!</p>
<blockquote>
<p>wie viele Zeichen würdest du denn für den Vornamen und Nachnamen einplanen?</p>
</blockquote>
<p>Die Felder sind VARCHAR, mit VAR wie in variabel. Die nehmen nur soviel Speicherplatz ein, wie die Inhalte wirklich lang sind. Du kannst da also ruhig mit größeren Zahlen operieren. Zudem sollte bei der Beantwortung der Frage immer der Anwendungsfall berücksichtigt werden. Müssen internationale Namen gespeichert werden, in denen komplette Lebensgeschichten der Vorfahren enthalten sind? Oder geht es um einen abgeschlossene Datenbestand, bei dem man also die Länge bereits kennt und sie deshalb nicht übermäßig groß werden kann? Müssen die Namen für beispielsweise behördliche Zwecke vollständig vorliegen oder reicht eine für den täglichen Gebrauch verwendete Kurzform? Diese Art Fragen musst du dem Auftragsgeber stellen.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2018/jul/10/felder-dynamisch-fuellen-wenn-ergebnis-vorhanden-ist/1726427#m1726427Christian Krusehttps://wwwtech.de/about2018-07-12T06:17:29Z2018-07-12T06:17:29ZFelder dynamisch füllen wenn Ergebnis vorhanden ist<p>Hallo Meowsalot,</p>
<blockquote>
<blockquote>
<p>Wenn man es genau nimmt, ist die Unterteilung in Vor- und Nachname schon ein Problem. Nicht jeder Mensch hat einen europäischen Namen.</p>
</blockquote>
<p>würdest du alles in ein Feld speichern?</p>
</blockquote>
<p>Hängt davon ab[tm]. Schau dir am besten die Seite an, die Gunnar verlinkt hat, die stellt auch ein paar valide Strategien vor. Alles in einem Feld zu speichern ist aber in der Tat eine Strategie, die eigentlich alles abdeckt. Musst du nur noch dafür sorgen, dass <a href="https://www.wired.com/2015/11/null/" rel="nofollow noopener noreferrer">Menschen wie dieser arme Kerl</a> angesprochen werden können </p>
<p>LG,<br>
CK</p>
<div class="signature">-- <br>
<a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a>
</div>