Hallo zusammen,
ich habe ein kleines Problem. Ich habe eine Tabelle, die mir Daten von Spielern anzeigt.
Für eine Detailansicht jedes einzelnen Spielers habe ich eine Click-Function erstellt für jedes <tr> element und POSTE das in eine sessionsave.php (dort speicher ich die ID des Spielers in einer $_SESSION)
Das Problem ist, dass ich allerdings immer die Seite neuladen muss, ehe das Modal die Daten von dem Spieler hat, den ich davor angeklickt habe.
Sprich, ich muss es irgendwie hinbekommen in der ajax success eine PHP-Variable zu definieren, die ich wiederrum im Modal nutzen kann.
Der Grund, weshalb ich eine Variable / $_SESSION o.ä. brauche ist folgender:
Ich greife für die Auswertung der Details auf PHP-Funktionen zu, die wiederum eine Datenbankabfrage starten. Als Übergabe-Parameter brauchen alle Functions jeweils die ID des Spielers.
Hat jemand eine Idee wie man das lösen könnte?
Ausgabe des Vornamens:
echo GetPlayerDetails("firstname", $_SESSION["steamidtable"]);
// A $( document ).ready() block.
$( document ).ready(function() {
console.log( "ready!" );
var myModal = $('#myModal').modal({show:false}); //Modal erzeugen, aber nicht gleich einblenden
// Eventlistener für jede Zeile der Onlineplayers-Tabelle registrieren
$(document).on('click', 'table#onlineplayers tr', (event) => {
// tgt ist die geklickte Tabellenzeile
const tgt = $(event.currentTarget),
// bez ist der Text der zweiten Tabellenzelle (steam-identifier)
bez = tgt.children('td').eq(1).text();
console.log("Zeile wurde geklickt");
console.log(bez);
$.ajax({
type: "POST",
url: "assets/spielerliste/sessionsave.php",
data: {bez: bez},
success: function(data){
console.log("Session wurde an Skript übertragen");
$obj = $.parseJSON(data);
console.log($obj);
alert(data);
myModal.modal('show');
}
});
return false;
});
});
Alles anzeigen
<?php
session_start();
echo json_encode($_POST["bez"]);
if(isset($_SESSION["steamidtable"])){
unset($_SESSION["steamidtable"]);
$_SESSION["steamidtable"] = $_POST["bez"];
}
else{
$_SESSION["steamidtable"] = $_POST["bez"];
}
// Add the rest of the post-variables to session-variables in the same manner
?>
Alles anzeigen
Ich habe zum Test bereits versucht, die Daten im Success auszuwerten.
alert(data) zeigt mir auch jeweils die richtige ID an, die ich ausgewählt habe.
Ich weis, dass ich mit einem location.reload() im success mein Problem gelöst hätte, aber ich möchte ungern die Seite nochmals neu Laden, weil das mit dem Modal kollidiert und die Seite im Schnitt 2-3 Sekunden zum laden braucht.