| 

.NET C# Java Javascript Exception

2
Hallo,
ich würde gerne mit Hilfe von PHP meinen Benutzern die Möglichkeit geben können einen Termin zu ändern, dazu sollen diese auf einen Link klicken können wodurch sich ein Bootstrap Modal öffnet und die Daten des Termin schon in die entsprechenden Felder geladen werden, so das der User nur noch an der entsprechenden Stelle die Daten ändern muss und nicht noch mal alle Felder neu ausfüllen muss.

Im Programm sieht es dann so aus:



Ich möchte gerne das Anhand der ID, welche durch den Hyperlink mitgeben wird ich eine SQL Abfrage im Modal machen kann und dadurch die Daten laden kann und Sie den Textfeldern als Value mit gebe.

Ich brauche dabei aber Hilfe, da ich nicht Ganz damit klar komme die Daten mit Hilfe von Java Script auszuwerten, so wie es in der Doku beschrieben wird: https://getbootstrap.com/docs/3.3/javascript/


Das ist der Code den ich für das aufrufen des Modals nutze, dort gebe ich bereits die ID des Termins mit:
<?php

echo("
<a class=\"bearbeiten-link\" href=\"#terminAnpassenModal\" data-toggle=\"modal\" data-target=\"#terminAnpassenModal\" data-id=\"$id\">
<!--<button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\"#terminAnpassenModal\" data-whatever=\"$id\"><span class=\"glyphicon glyphicon-pencil\" aria-hidden=\"true\"></span></button>-->
");
?>
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
<?php
echo(" </a>");
?>


Jetzt ist die Frage wie ich diese ID wieder im Modal weiter verwenden kann und diese Beispielsweise in PHP nutzen kann um eine SQL-Abfrage zu erzeugen.

Könnt Ihr mir dabei helfen?

Mit freundlichen Grüßen

Florian Wehrhausen
News:
09.02.2018
Laberkopf 5 2
6 Antworten
1
Wenn Sie die Daten VOR dem Aufruf des modalen Fensters besorgen wollen/müssen, dann hindert Sie das System nicht daran.
Ich sehe dann folgendes Vorgehen:
1. Link anklicken: PHP-Script zur Beschaffung der Daten wird aufgerufen.
Das PHP-Script muss die Daten serialisieren und z.B. in der Sitzung, in einem Cookie oder in einem externen Datenspeicher ablegen.
2. Das PHP-Script muss nach der Datenbeschaffung den modalen Dialog aufrufen. - Alternativ: Einfach zur Ausgangsseite zurückkehren. Die Daten liegen ja serialisiert vor.
3. Der modale Dialog muss die serialisierten Daten lesen und die Felder füllen.

Ich halte zwar diese Art des Vorgehens für komplizierter. Wir haben uns angewöhnt, die Daten erst zu beschaffen, wenn sie benötigt werden. Daten, die oft benötigt werden, werden einmal im Sitzungscache gehalten und von dort gelesen. Zur Serialisierung setzen wir typischerweise XML ein aber JSON geht auch.

Vielleicht hilft dies weiter.
20.02.2018
edvservice 1,4k 1 6
0
Ich bin leider kein Experte im Modal-Framework, aber soweit ich die Doku Ihres Links verstanden habe, haben Sie zwei Möglichkeiten:
1. Nutzung einer Funktion bei der Betätigung einer Schaltfläche
2. Event hide.bs.modal
In beiden Fällen sollte es mit JS gehen.
Wenn alles das nicht hilft, dann speichern Sie doch die Infos in der Nutzersitzung ab. Ich vermute der Nutzer muss sich sowieso authentifizieren und Sie richten eine PHP-Sitzung für den Nutzer ein.

Vielleicht hilft es ein wenig weiter.
12.02.2018
edvservice 1,4k 1 6
0
Hallo,
danke für deine Antwort, ja der User muss sich einloggen, den Vorschlag mit der Session-Variablen (so wie ich deine Antwort interpretiert habe) würde das eigentliche Problem nicht lösen, da ich an die Daten der Termine Problemlos dran komme. Das Problem ist nur das diese im Modal geladen werden sollen.
Ich hätte es gerne so wie die POST oder GET-Methode das wenn ich auf den Button klicke die ID des Termins an das Modal übergeben wird und ich dann im Modal mit Hilfe von PHP eine SQL-Abfrage machen kann und diese dann den Textfeldern des Modals als Value mitgebe.

Verstehst du was ich meine?

MFG FLorian
16.02.2018
Laberkopf 5 2
0
Dann dürfte ein anderes Event hilfreicher sein. Verbinden Sie mit dem Modaldialog eine jQuery-Funktion, die die Daten beschafft und an die Elemente verteilt:
$('#myModal').on('shown.bs.modal', function () {
// Beispiel: $('#myInput').focus() für den Fokus auf ein Element.
// Daten holen und an die Elemente verteilen...
// $('#myInput').val(<value>)
})

myModal ist der modale Dialog. Die Ereignismethode wird aufgerufen, wenn der modale Dialog angezeigt wird. Das Feld myInput ist ein INPUT-Feld, das mit der val()-Funktion ein Wert zugewiesen bekommt. Damit sollte eine Vorbelegung der Felder funktionieren.
19.02.2018
edvservice 1,4k 1 6
0
Danke für deine Antwort ist es Möglich das auch irgendwie das so zu machen?

Was ich gerne hätte wäre:
-man klickt auf einen Link, wo eine ID zu einem Datensatz liegt (erledigt).
-die ID wird an PHP übergeben
-über PHP wird eine mySQL-Abfrage ausgeführt, die Mithilfe der ID den passenden Datensatz ausliest (kein Problem).
-das Modal wird geöffnet und die Input-Felder werden mit den Daten aus der Datenbank gefüllt (sollte auch kein Problem sein).

Das Problem was sich mir hier stellt, ist das ich das Modal öffnen möchte aber zuvor auch noch die Daten zum Beispiel via GET-Methode an PHP übergeben möchte um so die Daten aus der Datenbank auslesen möchte die Frage ist nur wie ich dann das Modal öffne.
Es ist zum einen die Zeitliche Komponente und zum anderen das Zusammenspiel der Sprachen...
19.02.2018
Laberkopf 5 2
0
Wie könnte ein solcher Aufruf des Modals realsiert werden, eventuell so?

neue Seite 'bearbeiten.php'
<?php
.
.
Code der die Daten beschafft und wwischen speichert...
.
.
header('location: ./termine.php/#terminAnpassenModal');
?>

Wenn der normale Aufruf des Modals auf der selben Seite so wäre:
<a class=\"bearbeiten-link\" href=\"#terminAnpassenModal\" data-toggle=\"modal\" data-target=\"#terminAnpassenModal\" data-id=\"$id\">
21.02.2018
Laberkopf 5 2
Ja, das sollte gehen. Sie greifen auf das Attribut data-id zu und führen Ihr SQL aus. Die Daten müssen dann noch in die Felder geschrieben werden und der Teil #terminAnpassenModal sichtbar gemacht werden.
edvservice 22.02.2018

Stelle deine Javascript-Frage jetzt!