cardinal
Lt. Junior Grade
- Registriert
- Mai 2010
- Beiträge
- 467
Mahlzeit Community,
ich versuche gerade die eingegebenen Daten einer HTML Form einer .php Datei zu übergeben, verarbeiten zu lassen und davon dann einen json_encode() von einem Javascript auffangen zu lassen, welches die Erfolgs- bzw. Fehlernachricht generiert. Kompliziert geschrieben, aber eigentlich recht einfach. Das Aufrufen der .php funktioniert und die Daten werden korrekt in die Datenbank geschrieben. Leider kommt dann eine weiße Seite die mir die JSON Nachricht ausgibt:
{"message":"Artikel zum Artikelstamm hinzugefuegt","title":"Erfolg"}
Hier erstmal der Quellcode:
HTML-Form:
Die nötigen .css/.js Dateien sind im Header hinzugefügt.
addArtikel.php:
Javascript:
Das alles funktioniert und ist schon getestet. Natürlich ist mir klar, dass die Funktion auf einen Submit der Form mit der ID "add" wartet. Füge ich dort aber das Attribut id="add" ein, macht die ganze Form einfach gar nichts mehr, selbst die .php wird nicht ausgeführt.
Ohne ID (wie oben schon gesagt) wird die .php ausgeführt, die Daten eingefügt und die weiße Seite mit der JSON-Nachricht ausgegeben. Ich gehe also davon aus, dass die .js die Nachricht ohne die ID nicht bekommt.
Jemand eine Idee wieso die ganze Form nicht funktioniert, wenn die ID eingefügt ist? Oder direkt eine Lösung parat? Ich wäre sehr dankbar
Gruß,
Lui
ich versuche gerade die eingegebenen Daten einer HTML Form einer .php Datei zu übergeben, verarbeiten zu lassen und davon dann einen json_encode() von einem Javascript auffangen zu lassen, welches die Erfolgs- bzw. Fehlernachricht generiert. Kompliziert geschrieben, aber eigentlich recht einfach. Das Aufrufen der .php funktioniert und die Daten werden korrekt in die Datenbank geschrieben. Leider kommt dann eine weiße Seite die mir die JSON Nachricht ausgibt:
{"message":"Artikel zum Artikelstamm hinzugefuegt","title":"Erfolg"}
Hier erstmal der Quellcode:
HTML-Form:
Die nötigen .css/.js Dateien sind im Header hinzugefügt.
HTML:
<div id="divid" class="tab-pane fade in active">
<div class="container">
<div class="row">
<div class="9u skel-cell-important">
<?php
require_once('artikel/ausgabeArtikel.php');
?>
</div>
<div class="3u">
Artikel hinzufügen / löschen<br /><br />
<form>
<input type="text" name="artnr" placeholder="Artikelnummer" /><br />
<input type="text" name="artbeschr" placeholder="Artikelbeschreibung" /><br />
<input type="text" name="groesse" placeholder="Größe" /><br />
<input type="text" name="preis" placeholder="Preis" /><br />
<input type="submit" value="Hinzufügen"
formaction="artikel/addArtikel.php" formmethod="post"/>
<input type="submit" name="delete" value="Löschen"
formaction="artikel/delArtikel.php" formmethod="post"/>
</form>
<script src="artikel/message.js"></script>
</div>
</div>
</div>
</div>
addArtikel.php:
PHP:
<?php
require_once ('dbconnect.php');
$artnr = $_POST["artnr"];
$artbeschr = $_POST["artbeschr"];
$preis = $_POST["preis"];
$groesse = $_POST["groesse"];
if(isset($_POST["artnr"], $_POST["artbeschr"], $_POST["preis"])){
$sql =" INSERT INTO artikelstamm (artnr, beschreibung, groeße, preis) VALUES ('$artnr', '$artbeschr', '$groesse', '$preis')";
$ergebnis = mysqli_query($db_link, $sql)
or die("Fehler: ".mysqli_error($db_link));
if(!$ergebnis){
$arr = array(
'message' => 'Artikel nicht zum Artikelstamm hinzugefuegt',
'title' => 'Fehler beim Hinzufuegen'
);
echo json_encode($arr);
}else{
$arr = array(
'message' => 'Artikel zum Artikelstamm hinzugefuegt',
'title' => 'Erfolg'
);
echo json_encode($arr);
}
}
Javascript:
Code:
$('#add').on('submit', function(){
var that = $(this),
contents = that.serialize();
$.ajax({
url: 'addArtikel.php',
type: 'POST',
data: contents,
dataType: 'JSON',
success: function(data) {
toastr.options = {
"closeButton": true,
"debug": false,
"positionClass": "toast-top-full-width",
"onclick": null,
"showDuration": "20000",
"hideDuration": "20000",
"timeOut": "20000",
"extendedTimeOut": "20000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
}
if(data.title == "Erfolg"){
toastr.success(data.message, data.title);
}else{
toastr.error(data.message, data.title);
}
}
});
return false;
});
Das alles funktioniert und ist schon getestet. Natürlich ist mir klar, dass die Funktion auf einen Submit der Form mit der ID "add" wartet. Füge ich dort aber das Attribut id="add" ein, macht die ganze Form einfach gar nichts mehr, selbst die .php wird nicht ausgeführt.
Ohne ID (wie oben schon gesagt) wird die .php ausgeführt, die Daten eingefügt und die weiße Seite mit der JSON-Nachricht ausgegeben. Ich gehe also davon aus, dass die .js die Nachricht ohne die ID nicht bekommt.
Jemand eine Idee wieso die ganze Form nicht funktioniert, wenn die ID eingefügt ist? Oder direkt eine Lösung parat? Ich wäre sehr dankbar
Gruß,
Lui