php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 4 Stimmen, 2,00 durchschnittlich.
  #1 (permalink)  
Alt 25-12-2020, 12:30
tommy-11
 Registrierter Benutzer
Links : Onlinestatus : tommy-11 ist offline
Registriert seit: Dec 2020
Beiträge: 3
tommy-11 befindet sich auf einem aufstrebenden Ast
Question DB Tabelle nach Formular absenden neu laden

Hallo,


nun benötige ich doch mal eure Hilfe bzw. ein Schups in die richtige Richtung.


Ich bin Anfänger und übe und lerne an einem ganz simplen Script ein Dienstbuch zu programmieren. Das meiste in diesem Script habe ich nicht selbst geschrieben, sondern es ist ein Tutorial an dem ich lernen möchte. Ich habe eine SQL Datenbank eingebunden, darunter (auf der selben Seite) ein ganz einfaches Formular. Beim Absenden des Formulars wird der Inhalt in die DB geschrieben. Das funktioniert soweit. Leider sehe ich den neu abgesendeten Inhalt in der Tabelle auf der Seite erst nach dem nächsten neuladen der Seite. Ich möchte es gerne so haben, dass sich die Seite nach dem Absenden der Formulardaten einmal neu lädt und sofort der neue Inhalt auf der Seite zu sehen ist. Dazu soll sich die Seite natürlich nicht nur aus dem Browsercache neu laden, sondern hauptsächlich den Inhalt der DB neu einlesen.
Ich habe schon verschiedene Möglichkeiten ausprobiert. Per header() fällt aus, weil ich schon vorher html Ausgaben habe und dann die "berühmt berüchtigte " Fehlermeldung kommt. Per JS mit

Code:
<script>

   location.reload();

</script>
ist es mir auch nicht gelungen.
Nun steh ich etwas auf dem Schlauch...



Meine Datei "internal.php", auf dem die DB ausgegeben wird und die auch das Formular enthält sieht folgendermaßen aus:
PHP-Code:
<?php
session_start
();
require_once(
"inc/config.inc.php");
require_once(
"inc/functions.inc.php");

$user check_user();

include(
"templates/header.inc.php");
?>


<div class="container main-container">
Aktuell ist 
<b>
<?php 
  
echo htmlentities($user['vorname'])." ".htmlentities($user['nachname']);
?> 
</b> im Dienstbuch angemeldet. Das bist du nicht ? Dann: <a href="logout.php" target="_self">Abmelden!</a><br>

<img src="https://meineURL.de/derordner/templates/logo.jpg" width="50" height="50" alt="Logo" align="right">
<br><br>

<div class="panel panel-default">

<?php
$db2_host 
'localhost';
$db2_name 'dbname';
$db2_user $user['nachname'];
$db2_password $user['passwort'];

$link mysqli_connect($db2_host$db2_user$db2_password$db2_name);

if (!
$link) {
    echo 
"Fehler: konnte nicht mit MySQL verbinden." PHP_EOL;
    echo 
"Debug-Fehlernummer: " mysqli_connect_errno() . PHP_EOL;
    echo 
"Debug-Fehlermeldung: " mysqli_connect_error() . PHP_EOL;
    exit;
}

$sql "SELECT * FROM tabelle_sowieso";


$db_erg mysqli_query$link$sql );
if ( ! 
$db_erg )
{
  die(
'Ungültige Abfrage: ' mysqli_error());
}

echo 
'<table class="table" border="1"><tr bgcolor="#ddd"><td>Lfd.Nr.</td><td>Name</td><td>Datum/Zeit</td><td>Ereignis</td><td>Kommentar</td></tr>';
 
while (
$zeile mysqli_fetch_array$db_ergMYSQLI_ASSOC))
{
  echo 
"<tr>";
  echo 
"<td>"$zeile['Lfd.Nr.'] . "</td>";
  echo 
"<td>"$zeile['Name'] . "</td>";
  echo 
"<td>"$zeile['Datum/Zeit'] . "</td>";
  echo 
"<td>"$zeile['Ereignis'] . "</td>";
  echo 
"<td>"$zeile['Kommentar'] . "</td>";
  echo 
"</tr>";
}
echo 
"</table>";

mysqli_free_result$db_erg );
?>

</div>


<form action="internal.php" method="post">
<div class="form-group">
    <label>Ereignis</label> 
    <textarea class="form-control" name="ereignis_name" >
</textarea>
  </div>
  <div class="form-group">
    <label>Kommentar</label> 
    <textarea class="form-control" name="kommentar_name" >
</textarea>
  </div>
  <button class="btn btn-lg btn-primary btn-block" type="submit">Eintragen</button>
</form>

<?php
//Fehlerreport eingeschaltet
error_reporting(E_ALL);
ini_set('display_errors'1);   
  
$ereignis_name $_POST["ereignis_name"];
$kommentar_name $_POST["kommentar_name"];
 
if(isset(
$_POST['ereignis_name']) AND $_POST['kommentar_name'])

$statement $pdo->prepare("INSERT INTO `tabelle_sowieso` (`Name`, `Ereignis`, `Kommentar`) VALUES (:currentuser, :ereignis, :kommentar) ");
$statement->execute(array('currentuser' => $db2_user'ereignis' => $ereignis_name'kommentar' => $kommentar_name));
}
?>



</div>
<?php 
include("templates/footer.inc.php")
?>
</div>


Wie gesagt, es funktioniert soweit. Aber ich sehe die abgesendeten Formularinhalte erst in der Tabelle, wenn ich das Formular wieder mit neuen Eintragungen abgesendet habe. Es erscheint also immer der vorletzte abgesendete Inhalt in der Tabelle.

Gibt es eine Möglichkeit, bei der nach einem Klick auf den "Eintragen" Button erst die neuen Formularinhalte an die DB gesendet werden und danach die DB neu für die Ausgabe auf der selben Seite geladen wird?


Bitte habt Nachsicht mit mir als Anfänger ;-) falls etwas falsch formuliert oder nicht richtig dargestellt ist oder etwas fehlt.
Mit Zitat antworten
  #2 (permalink)  
Alt 25-12-2020, 21:42
Flavaslava
 Registrierter Benutzer
Links : Onlinestatus : Flavaslava ist offline
Registriert seit: Aug 2010
Beiträge: 20
Flavaslava befindet sich auf einem aufstrebenden Ast
Standard

Hey tommy-11,


die Lösung für dein problem wäre JavaScript. Also speziell Jquery und Ajax nutzen. Das ist die einzige möglichkeit die mir einfällt um es am einfachten umzusetzen kann. Durch asynchronen Daten versenden und empfangen mit AJAX könnte dir sicherlich helfen.


Mfg
Flavaslava
Mit Zitat antworten
  #3 (permalink)  
Alt 26-12-2020, 10:49
tommy-11
 Registrierter Benutzer
Links : Onlinestatus : tommy-11 ist offline
Registriert seit: Dec 2020
Beiträge: 3
tommy-11 befindet sich auf einem aufstrebenden Ast
Standard

Hi Flavaslava, danke für die Information. Okay, ich ackere mich erst mal durch dieses Tutorial https://riptutorial.com/de/ajax. Das klingt tatsächlich nach dem was ich gesucht habe. Na da habe ich ja erst mal wieder zu tun. Da muss ich erst mal rein kommen. Danke noch mal.
Mit Zitat antworten
  #4 (permalink)  
Alt 06-01-2021, 16:19
Benutzerbild von VIZUKA VIZUKA
 Registrierter Benutzer
Links : Onlinestatus : VIZUKA ist offline
Registriert seit: Aug 2011
Beiträge: 7
VIZUKA befindet sich auf einem aufstrebenden Ast
Standard

könnte auch so gehen
eventuell den Code (Reihenfolge) etwas umstellen
Abfragen ob Daten gesendet wurden

if(isset($_POST)){
// $_POST Variablen zuweisen
$zeile['Name'] = $_POST["Name"];
// Variablen ausgeben
}
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular erst nach überprüfen absenden! Kangarooo PHP Developer Forum 2 15-12-2009 14:39
'Zurück' nach Formular absenden medium22 PHP Developer Forum 2 30-03-2009 18:10
Formular nach absenden die Werte per PHP holen Natheedo PHP Developer Forum 5 07-12-2005 08:33
Formular absenden _sd PHP Developer Forum 13 17-11-2003 15:25
Formular absenden TBT HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 25-09-2002 15:03

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:52 Uhr.