AJAX daten via POST senden?

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

Versuche gerade ein Formular mit mehreren Feldern über AJAX abzusenden und in einer PHP-Datei auszulesen.

Das Absenden des Formulars ist soweit kein Problem.

Wie kann ich jedoch die POST-Daten aus in der PHP-Datei auslesen, gibt es überhaupt eine Möglichkeit dafür oder müssen alle Daten mit JavaScript ausgelesen und mit GET an die PHP-Datei weitergegeben werden?
 
Du Daten welche du per Formular an PHP schickst, werden in einem Superglobalen Array gespeichert. Zugriff darauf bekommst Du:
PHP:
//komplettes array
$_POST

// einzelnes inputfeld mit dem name-attribut aufgerufen:
$_POST['name']
 
Du Daten welche du per Formular an PHP schickst, werden in einem Superglobalen Array gespeichert. Zugriff darauf bekommst Du:
PHP:
//komplettes array
$_POST

// einzelnes inputfeld mit dem name-attribut aufgerufen:
$_POST['name']

Nach dem Absenden des Formulars werden die Daten in der Funktion ShowContent() über getElementById() ausgelesen und anschliessend über die URL an das PHP-Script weitergegeben. Somit ist kein Auslesen über $_POST mehr möglich.

Wie kann der ganze Inhalt des Formulars an formcontent.php weitergegeben werden?

Gibt es eine Möglichkeit, die Formulardaten über POST weiterzugeben?
Code:
function ShowContent()
{
    textfeld1 = document.getElementById('textfeld1').value;
    
    resObjekt.open('get','formcontent.php?textfeld1='+textfeld1,true);
    resObjekt.onreadystatechange = ShowOutput;
    resObjekt.send(null);
}

function ShowOutput()
{
    if(resObjekt.readyState == 4)
    {
        document.getElementById(content).innerHTML = resObjekt.responseText;
    }
}
 
Gibt es eine Möglichkeit, die Formulardaten über POST weiterzugeben?
Code:
function ShowContent()
{
    textfeld1 = document.getElementById('textfeld1').value;
    
    resObjekt.open('get','formcontent.php?textfeld1='+textfeld1,true);
    resObjekt.onreadystatechange = ShowOutput;
    resObjekt.send(null);
}

function ShowOutput()
{
    if(resObjekt.readyState == 4)
    {
        document.getElementById(content).innerHTML = resObjekt.responseText;
    }
}
Einfach das get in
Code:
resObjekt.open('get','formcontent.php?textfeld1='+textfeld1,true);
durch ein post ersetzen und dann diese gesendeten Werte mit $_POST im php Script wieder abfangen.

SIehe auch hier:
Ajax Tutorial
 
Zuletzt bearbeitet:
Wie sieht es mit Feldern aus welche bzw. 1500 Zeichen enthalten - funktioniert es da auch noch?

Ein Limit gibt es per GET, da dürftest du mit 1500 Zeichen evtl. schon in Grenzbereiche stossen.
Per POST spielt es keine Rolle.

Was den Sinn betrifft...was das alleinige Senden des Formulars betrifft, bietet AJAX keinen Zugewinn. Der Vorteil liegt halt darin, dass die aktuelle Seite erhalten bleibt.

Ein Workaround ohne AJAX und umständliches Verarbeiten der Formularfelder wäre das Senden des Formulars in ein verstecktes iFrame. Auch aus diesem iFRame heraus kannst du dann das Ursprungsdokument manipulieren.
 
Hi,

POST Daten können eine (fast) beliebige Größe habe, desshalb macht es bei Formularen durchaus Sinn, diese mittels POST zu schicken.
 
Ein Limit gibt es per GET, da dürftest du mit 1500 Zeichen evtl. schon in Grenzbereiche stossen.
Per POST spielt es keine Rolle.

Was den Sinn betrifft...was das alleinige Senden des Formulars betrifft, bietet AJAX keinen Zugewinn. Der Vorteil liegt halt darin, dass die aktuelle Seite erhalten bleibt.

Ein Workaround ohne AJAX und umständliches Verarbeiten der Formularfelder wäre das Senden des Formulars in ein verstecktes iFrame. Auch aus diesem iFRame heraus kannst du dann das Ursprungsdokument manipulieren.

Mein Problem ist, dass auf der Seite mehrere Formulare angezeigt werden. Nun wäre es wäre schön, wenn diese über AJAX abgesendet werden könnten.

Das Problem ist einfach, dass ich nicht für jedes Formular eine JavaScript Funktion schreiben kann welche die entsprechenden Input-Felder des jeweiligen Formulars enthält.

Hast du sonst noch eine Idee wie so etwas umgesetzt werden könnte (ohne iframe)?
 

Neue Beiträge

Zurück