tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
2064
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    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?
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Du Daten welche du per Formular an PHP schickst, werden in einem Superglobalen Array gespeichert. Zugriff darauf bekommst Du:
    PHP-Code:
    //komplettes array
    $_POST

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

  3. #3
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von Maniac_81 Beitrag anzeigen
    Du Daten welche du per Formular an PHP schickst, werden in einem Superglobalen Array gespeichert. Zugriff darauf bekommst Du:
    PHP-Code:
    //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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    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;
        }
    }
     

  4. #4
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Zitat Zitat von unrealzero_php Beitrag anzeigen
    Gibt es eine Möglichkeit, die Formulardaten über POST weiterzugeben?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    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 :
    1
    
    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
    Geändert von SCIPIO-AEMILIANUS (13.02.09 um 11:46 Uhr)
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  5. #5
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von SCIPIO-AEMILIANUS Beitrag anzeigen
    Einfach das get in
    Code :
    1
    
    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
    Gibt es keine Möglichkeit den gesamten POST-Array abzufangen bzw. weiterzuleiten. Muss ich zwingend jeden einzelnen Inputfeld angeben.
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von unrealzero_php Beitrag anzeigen
    Gibt es keine Möglichkeit den gesamten POST-Array abzufangen bzw. weiterzuleiten.
    Nein
    Zitat Zitat von unrealzero_php Beitrag anzeigen
    Muss ich zwingend jeden einzelnen Inputfeld angeben.
    ja

    ...dies übrigens per GET auch nicht anders.
     

  7. #7
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Nein
    ja

    ...dies übrigens per GET auch nicht anders.
    Also macht es überhaupt keinen Sinn ein Formular über AJAX abzusenden weil die Daten ohnehin in JavaScript erst abgefangen und anschliessend über GET bzw. POST wieder versendet werden müssen?

    Wie sieht es mit Feldern aus welche bzw. 1500 Zeichen enthalten - funktioniert es da auch noch?
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von unrealzero_php Beitrag anzeigen
    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.
     

  9. #9
    Avatar von EvilO
    EvilO EvilO ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Wuppertal (NRW)
    Beiträge
    172
    Hi,

    POST Daten können eine (fast) beliebige Größe habe, desshalb macht es bei Formularen durchaus Sinn, diese mittels POST zu schicken.
     
    "Die Deutsche Rechtschreibung ist Freeware, dass heisst jeder kann sie benutzen wann er will, ohne dafür zu zahlen. Sie ist aber nicht Open Source, also darf sie ohne Zustimmung der Entwickler nicht verändert und weiterverbreitet werden."

  10. #10
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    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)?
     

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von unrealzero_php Beitrag anzeigen
    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.
    Du musst ja nicht für jedes Formular eine eigene Funktion schreiben, es reicht eine einzige, welche aus beliebigen Formularen die Daten zusammensucht
     

  12. #12
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Du musst ja nicht für jedes Formular eine eigene Funktion schreiben, es reicht eine einzige, welche aus beliebigen Formularen die Daten zusammensucht
    Und wie können diese Daten zusammengesucht werden, alle möglichen Formularfelder (mehr als 90) mit if prüfen?
    Code :
    1
    2
    3
    
    If(document.getElementById('name').value != '')
    {
    }
    Geändert von unrealzero_php (13.02.09 um 16:29 Uhr)
     

  13. #13
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Du könntest allen Input Feldern den selben CLASS Namen zuweisen und dann anschließend mit zum Beispiel folgender Funktion abfragen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    var el=document.getElementsByClassName("inputclass");
    var i=0;
    var u=0;
    while(i<el.length)
    {
    if(el[i].value=="")
    {
    u++;
    }
    i++;
    }
    if(u>0)
    {
    alert("Es sind nicht alle Felder ausgefüllt!");
    }
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

Ähnliche Themen

  1. Ajax XML-Werte per POST an ein PHP-Script senden
    Von mrno im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 27.03.09, 11:44
  2. POST Daten an Server senden
    Von empty123 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 21.03.09, 19:38
  3. Daten mit POST an Webserver senden
    Von Hal1983 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 08.02.08, 08:36
  4. Ajax: Größere Datenmengen per Post senden?
    Von DataFox im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 02.02.08, 01:38
  5. Ajax: Mehrere Parameter per POST senden
    Von DataFox im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 02.02.08, 00:52