Beiträge: 131
Themen: 34
Registriert seit: May 2022
Bewertung:
0
(09.07.2024, 11:42)Sempervivum schrieb: Der Schlüssel "action" existiert nicht in $_POST. Es muss ein Formularelement geben, das "action" als name-Attribut hat und value="insert_kontakt".
das Formular hat nur einen Namen name="kontakt"
PHP-Code: <div style = "width: 50%"> <form name="kontakt"> <table class="table table-bordered"> <tbody> <tr>
sollte dann aber so aussehen?
PHP-Code: <form method="POST" action="blablabla" name="kontakt">
oder was meinst Du?
Beiträge: 130
Themen: 0
Registriert seit: Jul 2023
Bewertung:
10
Nein, es muss ein Formularelement geben innerhalb des Formulars z. B. ein input oder ein button. Wenn das mit dem $.ajax funktioniert hat, müsste es in dem Stand drin sein. Häufig benutzt man dazu den Submit-Button und zwar dann, wenn es sich um ein Affenformular handelt, das sich selbst wieder aufruft. Schickt man die Daten mit Ajax zum Server ist das eigentlich überflüssig.
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Beiträge: 131
Themen: 34
Registriert seit: May 2022
Bewertung:
0
(09.07.2024, 12:16)Sempervivum schrieb: Nein, es muss ein Formularelement geben innerhalb des Formulars z. B. ein input oder ein button. Wenn das mit dem $.ajax funktioniert hat, müsste es in dem Stand drin sein. Häufig benutzt man dazu den Submit-Button und zwar dann, wenn es sich um ein Affenformular handelt, das sich selbst wieder aufruft. Schickt man die Daten mit Ajax zum Server ist das eigentlich überflüssig.
das habe ich schon versucht! Button => name="save_kontakt"
Code: <button type="submit" name="save_kontakt"
class="btn btn-outline-secondary btn-sm" value="save_kontakt">Kontakt erstellen</button>
</form>
PHP-Code: <?php require("../includes/mysqlPdo.php");
if($_POST["save_kontakt"]){ $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"]; $firma = $_POST["firma"]; $telefon = $_POST["telefon"]; $mobil = $_POST["mobil"]; $fax = $_POST["fax"]; $funktion = $_POST["funktion"]; $email = $_POST["email"]; $prowl = $_POST["prowl"]; $divera = $_POST["divera"]; $synonym = $_POST["synonym"];
$sql = $pdo->prepare("INSERT INTO tbl_kontakte (vorname, nachname, mobilfunk, telefon, firma, details, email, merkmal_1, merkmal_2, merkmal_3, merkmal_4) VALUES ('".$vorname."','".$nachname."', '".$mobil."','".$telefon."' ,'".$firma."' ,'".$fax."' ,'".$email."' ,'".$funktion."' ,'".$prowl."' ,'".$divera."' ,'".$synonym."')"); $sql->execute(); } ?>
Beiträge: 130
Themen: 0
Registriert seit: Jul 2023
Bewertung:
10
Ich habe das mal getestet und offenbar rechnet ein button nicht zu den Elementen, die bei "new FormData" berücksichtigt werden. Am besten die Abfrage weg lassen, weil sie, wie oben geschrieben, überflüssig ist. Du kannst aber auch ein beliebiges Element zu den Formulardaten hinzu fügen:
Code: const fd = new FormData(formKontakt);
fd.append('save_kontakt', 'save_kontakt');
Und dann dieses fd beim Wegschicken mit fetch verwenden.
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Beiträge: 131
Themen: 34
Registriert seit: May 2022
Bewertung:
0
(09.07.2024, 12:54)Sempervivum schrieb: Ich habe das mal getestet und offenbar rechnet ein button nicht zu den Elementen, die bei "new FormData" berücksichtigt werden. Am besten die Abfrage weg lassen, weil sie, wie oben geschrieben, überflüssig ist. Du kannst aber auch ein beliebiges Element zu den Formulardaten hinzu fügen:
Code: const fd = new FormData(formKontakt);
fd.append('save_kontakt', 'save_kontakt');
Und dann dieses fd beim Wegschicken mit fetch verwenden.
Danke für alles :-) Ich werde Deine Hilfe und Unterstützung nicht vergessen! Danke
Beiträge: 130
Themen: 0
Registriert seit: Jul 2023
Bewertung:
10
Heiß das, dass es jetzt funktioniert?
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Beiträge: 131
Themen: 34
Registriert seit: May 2022
Bewertung:
0
(09.07.2024, 17:03)Sempervivum schrieb: Heiß das, dass es jetzt funktioniert?
Ich habe das alte Script mit ein paar Anpassungen von Dir wieder eingesetzt.
Ist bestimmt nicht das gelbe vom Ei, aber es funktioniert.
Code: /* START */
const formKontakt = document.querySelector('form[name="kontakt"]');
formKontakt.addEventListener('submit', (event) => {
// Default-Aktion, Abschicken des Formulars, verhindern,
// weil wir es mit Ajax zum Server schicken wollen:
event.preventDefault();
$.ajax({
type: 'POST',
url: '../database/post_kontakt_neu.php',
data: {
vorname: formKontakt.querySelector('input[name="firstname"]').value,
nachname: formKontakt.querySelector('input[name="lastname"]').value,
firma: formKontakt.querySelector('input[name="company"]').value,
telefon: formKontakt.querySelector('input[name="phone"]').value,
mobil: formKontakt.querySelector('input[name="mobil"]').value,
fax: formKontakt.querySelector('input[name="fax"]').value,
funktion: formKontakt.querySelector('input[name="funktion"]').value,
email: formKontakt.querySelector('input[name="email"]').value,
prowl: formKontakt.querySelector('input[name="prowl"]').value,
divera: formKontakt.querySelector('input[name="divera"]').value,
synonym: formKontakt.querySelector('input[name="synonym"]').value,
action: 'insert_kontakt',
},
success: function () {
formKontakt.reset();
$('#table_kontakt').load(window.location.href + ' #table_kontakt');
document.getElementById('alert-kontakt').style.display = 'block';
document.querySelector('form[name="kontakt"]').style.display = 'none';
$('#ueberschriftKontakt').load(
window.location.href + ' #ueberschriftKontakt'
);
},
});
});
let buttonKontaktBestaetigen = document.getElementById('closeKontaktNeu');
if (buttonKontaktBestaetigen) {
buttonKontaktBestaetigen.addEventListener('click', () => {
document.getElementById('alert-kontakt').style.display = 'none';
document.querySelector('form[name="kontakt"]').style.display = 'block';
});
}
/* ENDE */
PHP-Code: <?php require("../includes/mysqlPdo.php");
if($_POST["action"] == "insert_kontakt"){ $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"]; $firma = $_POST["firma"]; $telefon = $_POST["telefon"]; $mobil = $_POST["mobil"]; $fax = $_POST["fax"]; $funktion = $_POST["funktion"]; $email = $_POST["email"]; $prowl = $_POST["prowl"]; $divera = $_POST["divera"]; $synonym = $_POST["synonym"];
$sql = $pdo->prepare("INSERT INTO tbl_kontakte (vorname, nachname, mobilfunk, telefon, firma, details, email, merkmal_1, merkmal_2, merkmal_3, merkmal_4) VALUES ('".$vorname."','".$nachname."', '".$mobil."','".$telefon."' ,'".$firma."' ,'".$fax."' ,'".$email."' ,'".$funktion."' ,'".$prowl."' ,'".$divera."' ,'".$synonym."')"); $sql->execute(); } ?>
|