Web: Datenaustausch JS und PHP funktioniert nicht

flashbox

Ensign
Registriert
März 2013
Beiträge
142
Hey,
bin neu in der Webentwicklung bzw. was die Backendgeschichten angeht mit php. Ich wollte für Testzwecke einfach nur eine simple HTML Form mit Inputs erstellen, in der ich dann über einen Submit und Action eine .php aufrufe und die values der Inputfelder der .php übergebe und dort benutzen kann. Nur will es iwie nicht klappen.

Hier meine Code Ausschnitte:


HTML Ausschnitt:

HTML:
<section id="main">
            <form class="form" id="form1" action="produktAnlegen.php" methode="post">

                <p>
                    <input name="marke" type="text" placeholder="Marke"  />
                </p>

                <p>
                    <input name="modell" type="text" placeholder="Modell" />
                </p>

                <p>
                    <input name="farbe" type="text"  placeholder="Farbe" />
                </p>

                <p>
                    <input name="groesse" type="text" placeholder="Größe" />
                </p>

                <p>
                    <input name="bezeichnung" type="text" placeholder="Bezeichnung" />
                </p>

                <p>
                    <input name="preis" type="text"  placeholder="Preis" />
                </p>

                <div class="submit">
                    <input type="submit" value="Produkt anlegen" id="button-blue"/>
                </div>
            </form>
</section>



Und jetzt die produktAnlegen.php:

PHP:
<?php


include("connectToDB.php");

if (isset($_POST['marke'])) {
    $marke = $_POST["marke"];
}

echo "Marke = " . $marke;


Leider wird nichts zurückgegeben weil $marke leer bleibt, obwohl ich in das entsprechende Inputfeld was eintrage bevor ich submitte, warum? Im Internet sind die Code Beispiele immer genauso?!
 
methode="post" sollte method="post" sein.
 
Hat leider nichts gebracht. Hab mal error reporting angeschaltet.
Wenn ich die if clause mit dem isset() so lasse, kommt "Notice: Undefined variable: marke".
wenn ich einfach nur $marke initialisiere ohne if-clause und isset(), kommt: "Notice: Undefined index: marke"
 
Code:
<?php 
include("connectToDB.php");
$marke = '';
if (isset($_POST['marke'])) {
    $marke = $_POST["marke"];
}
echo "Marke = " . $marke;
 
Habs einfach mal mit "GET" versucht. Damit geht es, aber noch nicht mit POST...
 
Zuletzt bearbeitet:
Hallo

Theoretisch könnte man es auch so lösen:

<form class="form" id="form1" action="produktAnlegen.php?&marke=<?php echo $marke; ?>" method="post">

Zwar keine professionelle Lösung, aber funktioniert auch so :-)!

LG
 
Ganz einfach mal debugen - was kommt überhaupt bei php script an? $_POST[]
Wird das script überhaupt ausgeführt? oder ist der Pfad falsch?

Und wenn du das über JS machen willst, ist es etwas mehr schreibarbeit:
Code:
(function($) {
  function assocJSON(formArray) {
    var tmp = {};
    $.each(formArray, function() {
      tmp[this.name] = this.value;
    });
    return tmp;
  }
  $("body").on("submit", "#DEINFORM", function(e) {
      e.preventDefault();
      var $this = $(this), data = $this.serializeArray();
      var tmpData = JSON.stringify(assocJSON(data));

      $.post('api/index.php', tmpData, function(returnedData) {
        console.log(returnedData);
      });
    });
  });



und in der api/index.php kannst du es dann so in etwa abrufen:

Code:
$postData = file_get_contents('php://input');
$postData_toArray = json_decode($postData, true);

// in $postData_toArray sind dann alle deine eingaben gespeichert
 
Zurück
Oben