EuroCent
Klappstuhl 2.0
Hallo zusammen,
ich habe ein Dialog in dessen ein Formular hinterlegt ist.
Beim absenden des Formulars überprüfe Ich die Daten und lass Sie dann von der DB mittels Ajax bearbeiten.
Nun möchte ich aber nachdem das passiert ist, dass das Formular oder das Dialog in sich selbst refresh also aktualisiert ohne dass die gesamte Seite neu geladen wird.
Das hier hab Ich bereits schon versucht:
oder:
hier mal der Abschied der Funtion die Ich dazu aufrufe:
Hier die PHP-Dateien:
Wie gesagt das Ergebnis wird auch geliefert nur sollte es beim Success dann eben das Formular oder das Dialog selbst in sich aktualisieren
Entweder bin Ich zu blöd beim Such-Tags in Google oder Ich habe tatsächlich dazu nichts finden können :/
ich habe ein Dialog in dessen ein Formular hinterlegt ist.
Beim absenden des Formulars überprüfe Ich die Daten und lass Sie dann von der DB mittels Ajax bearbeiten.
Nun möchte ich aber nachdem das passiert ist, dass das Formular oder das Dialog in sich selbst refresh also aktualisiert ohne dass die gesamte Seite neu geladen wird.
Das hier hab Ich bereits schon versucht:
Javascript:
window.location.refresh();
oder:
Javascript:
form[0].reset();
hier mal der Abschied der Funtion die Ich dazu aufrufe:
Javascript:
teamChange = function(userid) {
var url = './load/teamChange.php';
var dburl = './load/teamChange_db.php';
$.ajax({
url: url,
type: 'POST',
data: { uid: userid },
success: function(data) {
$(data).dialog({
modal: true,
draggable: true,
resizable: false,
position: {
my: 'center',
at: 'center',
of: window
},
buttons: [
{
text: 'Speichern',
"class": "btn btn-sm btn-success",
"type": "button",
click: function(e) {
e.preventDefault();
var form = $("#form").serialize();
var ele = form.split("&");
var newTeam = ele[1].split("=");
$.ajax({
url: dburl,
type: "POST",
data: { uid: userid, teamname: newTeam[1] },
success: function(data) {
console.log(data);
//window.loacation.refresh();
//form[0].reset();
},
error: function(xhr, status, error) {
console.log('Message: ' + xhr.responseText + ' | Status: ' + status + ' | Error: ' + error);
}
});
}
},
{
text: 'Abbrechen',
"class": "btn btn-sm btn-warning",
"type": "button",
click: function(e) {
e.preventDefault();
$(this).dialog("destroy");
}
}
],
width: 400,
height: 300,
title: '[' + userid + '] Teamwechsel bearbeiten'
});
$('.ui-dialog-titlebar-close').hide();
},
error: function(xhr, status, error) {
console.log('Message: ' + xhr.responseText + ' | Status: ' + status + ' | Error: ' + error);
}
});
};
Hier die PHP-Dateien:
PHP:
<?php
include_once('../../libs/configs.php');
$options = '';
$sqluser = $db->__query("SELECT * FROM benutzer WHERE id = '". filter_input(INPUT_POST, 'uid')."'");
$rowuser = $db->__fetchArray($sqluser);
$sql = $db->__query("SELECT * FROM team WHERE teamhash != '". __getTeamtag($rowuser['username'])."' ORDER BY teamhash ASC");
while($row = $db->__fetchArray($sql)) {
$options .= '<option value="'.$row['teamhash'].'">'.$row['teamname'].'</option>';
}
?>
<div id="dialog" title="Teamwechsel bearbeiten">
<div id="errorMsg"></div>
<form id="form" class="form-horizontal">
<div class="form-group">
<label for="curr_team" class="text">aktuelles Team:</label>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fas fa-users"></i>
</span>
</div>
<input type="text" class="form-control disabled" name="curr_team" id="curr_team" value="<?= __getTeam($rowuser['username']); ?>" readonly />
</div>
</div>
<div class="form-group">
<label for="new_team" class="text">neues Team:</label>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fas fa-exchange-alt"></i>
</span>
</div>
<select class="form-control" name="new_team" id="new_team">
<?= $options; ?>
</select>
</div>
</div>
</form>
</div>
Wie gesagt das Ergebnis wird auch geliefert nur sollte es beim Success dann eben das Formular oder das Dialog selbst in sich aktualisieren

Entweder bin Ich zu blöd beim Such-Tags in Google oder Ich habe tatsächlich dazu nichts finden können :/