Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Html formular -> ajax -> php script

  1. #1
    Fortgeschrittene/r
    Registriert seit
    29.02.2008
    Beiträge
    172
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Html formular -> ajax -> php script

    Also wie der Titel schon sagt möchte ich ein Formular per ajax an ein php Script schicken.
    Dazu habe ich folgendes Formular erstellt:
    HTML-Code:
    <html>
    <head>
    <script type="text/javascript" src="selectuser.js"></script>
    </head>
    <body>
    <h1 style="text-align: center;">Neuer Eintrag</h1>
    <form> 
    Niedrigster Puls<input type="text" name="niedrigsterpuls"><br/>
    <input type='hidden' name='tag' value=''><input type='hidden' name='jahr' value=''><input type='hidden' name='monat' value=''>Höchster Puls<input type="text" name="hoechstpuls"><br/>
    Durchschnittlicher Puls:<input type="text" name="durchschnitspuls"><br/>
    Gelaufene Km:<input type="text" name="km"><br/>
    Dauer:<input type="text" name="zeit"><br/>
    Verbrauchte Kalorien:<input type="text" name="verbrauch"><br/>
    <input type="submit" value="eintragen" name="gesendet" onchange="eintrag(this.value)>
    </form>
    
    <div id="status">
    </div>
    
    </body>
    </html>
    Das php Programm zur Auswertung sieht folgender maßen aus:

    HTML-Code:
    <?php
    $gesendet = $_POST["gesendet"];
    
    if(isset($gesendet)){
    include("db_connect.inc.php");
    $km = $_POST["km"];
    $zeit = $_POST["zeit"];
    $kmh = $km / $zeit;
    $hpuls = $_POST["hoechstpuls"];
    $npuls = $_POST["niedrigsterpuls"];
    $dpuls = $_POST["durchschnitspuls"];
    $verbrauch = $_POST["verbrauch"];
    $day = $_POST["tag"];
    $month = $_POST["monat"];
    $year = $_POST["jahr"];
    
    /* Einf&uuml;gen der Daten */
    $abfrage = "INSERT INTO haillo (jahr, hoechstpuls, niedrigsterpuls, durchschnitspuls, km, kmh, zeit, verbrauch, monat, tag) VALUES ('$year', '$hpuls', '$npuls', '$dpuls', '$km', '$kmh', '$zeit', '$verbrauch', '$month', '$day')";
    $ergebnis = mysql_query($abfrage);
    
    /* &Uuml;berpr&uuml;fung ob die Daten eingetragen wurden. */
    
    if($ergebnis == 1) {
    echo "Eintrag gespeichert";
                       }
    else {
    echo "Eintrag konnte leider nicht gespeichert werden.";
         }
                        }
    
    ?>
    Und zu guter letzt der Javascript code bei dem ich nicht weiter komme:

    HTML-Code:
    var xmlhttp;
    
    function eintrag(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
      {
      alert ("Browser does not support HTTP Request");
      return;
      }
    var url="getuser.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("status").innerHTML=xmlhttp.responseText;
    }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return null;
    }
    Ok das waren die vorhandenen Elemente.
    Leider bin ich gerade erst in Javascript und Ajax eingestiegen und komme nicht so recht weiter, denn der vorhandene Code führt nicht zum gewünschten Ergebnis.
    Ich hoffe mir kann jemand bei der Lösung behilflich sein.

    Mfg
    haillo
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von haillo (27.07.2009 um 16:38 Uhr)

  2. #2
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Ein Form braucht auch noch die attribute method, in deinem fall method="post" und action. Das kommt alles in den startenden Form-Tag.
    Ansonten hast du beim letzten input ganz hinten noch Anführungszeichen vergessen.

    Soviel erstmal von meiner Seit.

  3. #3
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Was mir als erstes auffällt:
    Du prüfst, ob das Formular per POST gesendet wurde (auch wenn ich Sinn und Zweck der ersten Zeilen deines php-Scripts nicht verstehe. $gesendet wird initialisiert und dann wired geprüft, ob sie gesetzt ist? das führt doch zu nix ).
    Zudem willst du all deine Variablen per POST empfangen.
    ABER: Du verschickst mit Javascript einen GET-Request. Somit kann dein Script auch die Daten nicht verarbeiten.

    Änder mal diese Zeile
    Code:
    xmlhttp.open("GET",url,true);
    so
    Code:
    xmlhttp.open("POST",url,true);
    um.

    Dann können wir nach anderen Fehlern suchen

    Grüße,
    jojo

    @thilda: er will das Formular per AJAX verarbeiten, von daher braucht es nicht unbedingt ein vollständiges form-Tag

  4. #4
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    29.02.2008
    Beiträge
    172
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Also ersteinmal vielen Dank für die schnellen Antworten.
    Aller Anfang ist schwer!
    So nun hier die verbesserten Quellcode:

    php:

    HTML-Code:
    <?php
    if(isset($_POST["gesendet"])){
    include("db_connect.inc.php");
    $km = $_POST["km"];
    $zeit = $_POST["zeit"];
    $kmh = $km / $zeit;
    $hpuls = $_POST["hoechstpuls"];
    $npuls = $_POST["niedrigsterpuls"];
    $dpuls = $_POST["durchschnitspuls"];
    $verbrauch = $_POST["verbrauch"];
    $day = $_POST["tag"];
    $month = $_POST["monat"];
    $year = $_POST["jahr"];
    
    /* Einf&uuml;gen der Daten */
    $abfrage = "INSERT INTO haillo (jahr, hoechstpuls, niedrigsterpuls, durchschnitspuls, km, kmh, zeit, verbrauch, monat, tag) VALUES ('$year', '$hpuls', '$npuls', '$dpuls', '$km', '$kmh', '$zeit', '$verbrauch', '$month', '$day')";
    $ergebnis = mysql_query($abfrage);
    
    /* &Uuml;berpr&uuml;fung ob die Daten eingetragen wurden. */
    
    if($ergebnis == 1) {
    echo "Eintrag gespeichert";
                       }
    else {
    echo "Eintrag konnte leider nicht gespeichert werden.";
         }
                        }
    
    ?>
    js:

    HTML-Code:
    var xmlhttp;
    
    function eintrag(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
      {
      alert ("Browser does not support HTTP Request");
      return;
      }
    var url="getuser.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("POST",url,true);
    xmlhttp.send(null);
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("status").innerHTML=xmlhttp.responseText;
    }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return null;
    }
    Ich hoffe es kann mir jemand bei der weiteren fehler Suche helfen, denn der gewünschte Effekt wir immer noch nicht erziehlt!

    MfG
    haillo

  5. #5
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Html formular -> ajax -> php script

    Zitat Zitat von jojo87 Beitrag anzeigen
    Was mir als erstes auffällt:
    Du prüfst, ob das Formular per POST gesendet wurde (auch wenn ich Sinn und Zweck der ersten Zeilen deines php-Scripts nicht verstehe. $gesendet wird initialisiert und dann wired geprüft, ob sie gesetzt ist? das führt doch zu nix ).
    [...]
    Code:
    if(isset($_POST['was'])) {
    $was = $_POST['was'];
    //do
    }
    oder
    Code:
    $was = $_POST['was'];
    if(isset($was)) {
    //do
    }
    Funktioniert bei mir bisher beides genau so - wenn ich mal tippfaul bin und nur etwas ausprobieren will mach ich das auch so...

    Hat auch meiner Meinung nach den Vorteil, dass man am Anfang eines scripts in einem Block schön übersichtlich alle Variablen stehen hat die auch übergeben werden.

  6. #6
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Tatsache.
    Ich geb zu, ich hatts nicht ausprobiert

  7. #7
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    29.02.2008
    Beiträge
    172
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Über weitere verbesserungs Vorschläge würde ich mich freuen.
    Geändert von haillo (28.07.2009 um 20:15 Uhr)

  8. #8
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Html formular -> ajax -> php script

    Es wäre hilfreich wenn du ein wenig genauer erklärst worum es geht, eine Dokumentation in deinem Script gibts leider praktisch keine.

    Was mir auffällt ist, dass das javascript momentan gar nicht benutzt wird.
    onchange (bei erfolgter Änderung) Für den Fall, dass ein Element einen geänderten Wert erhalten hat.
    http://de.selfhtml.org/javascript/sp...enthandler.htm

    value ändert sich bei dem Submit button aber nicht. Da müsste ein onclick() hin - wobei ich mir da nicht sicher wäre ob es sich mit dem submit dann nicht beist (was man allerdings leicht lösen könnte, da js eine funktion submit() hat).

    Erklär mal was du damit erreichen willst, warum muss es Ajax sein - um ein formular an php zu schicken brauchst du es aufjedenfall nicht...

  9. #9
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    29.02.2008
    Beiträge
    172
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Html formular -> ajax -> php script

    Ok ich hab es verstanden. Ihr bekommt mehr Informationen.
    Also ich habe ein Lauftagebuch geschrieben.
    Für jeden Tag gibt es ein Feld, wenn für einen Tag ein Eintrag vorhanden ist, wird dieser angezeigt, wenn kein Eintrag vorgenmmen wurde wird ein Link angezeigt, welcher eine Lightbox ( http://www.ibegin.com/labs/ibox/readme.php (document)) öffnet. In dieser soll dann der "problem" Code angezeigt werden. Wenn der Eintrag vor genommen wurde, habe ich mir gedacht das eine Erfolgsmeldung erscheint, die Ibox geschlossen wird und die Daten für den besagten Tag erneuert werden.

    Jetzt kennt Ihr meine Absichten.

    PS: Soll ich den gesamten Code liefern?

  10. #10
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Beitrag AW: Html formular -> ajax -> php script

    Dann sag ich dir, dass du dafür kein AJAX/JS brauchst - php reicht dir da vollkommen. Der einzige grund in so einer situation was mit javascript zu machen (und in meinen augen ist es eigtl immer so) eine änderung ohne neuladen der seite anzuzeigen...

    Soweit ich das jetzt verstanden hab:

    wir haben ein Feld.
    in dem Feld ist ein Eintrag, bei fehlenden Eintrag ein link (bzw. ein button) der ein javascript aufruft der eine box anzeigt.

    In dem Fall, dass ein Eintrag nicht da ist, soll es möglich sein den Eintrag zu machen (in der box die das js erzeugt).

    Sobald man den Eintrag nun ausgefüllt und abgeschickt hat soll man eine Meldung bekommen das alles gut geklappt hat und der Eintrag denk ich mal dann jetzt mit der neuen Liste angezeigt werden?

    Wenn ich das jetzt richtig sehe:

    ein <form> für die ganze liste machen mit action="deinphpfile.php" method="post" .

    Ich denke mal jeder Eintrag hat dann eine ID oder zumindest irgendetwas anderes womit man es identizifieren kann (datum, name was auch immer).

    Wenn das gegeben ist, könnte man es so lösen:

    [eintrag]
    [eintrag]
    [eintrag - fehlt - click mich] -->
    /*öffnet eine box mit textarea's / input's + submitbutton / button der onclick="submit()" als eigenschaft hat, fals denn nochmal ein js aufgerufen werden muss aus welchen gründen auch immer.*/

    Soweit so gut...

    Da du mehrere Einträge hast, und vllt auch mehrere fehlen wird das ganze nun ein wenig lustiger.

    Die Namen der ganzen inputfelder und des buttons und bla fasel müssen nämlich eindeutig indentifizierbar sein. D.h.

    z.B. feldname_id

    Sprich: sobald du die ganzen daten an dein php script übergibst, musst du auch noch rausfinden welcher Eintrag überhaupt eingetragen wurde.
    Kannst es mit einer schleife machen
    PHP-Code:
    //fals irgendetwas übergeben wurde
    if(isset($_POST[])) {
     
    //finde raus welches formular ausgefüllt wurde
     
    for($i $i $anzahl_eintraege $i++) {

     if(isset(
    $_POST['submitbutton_'+$i])) { 
    /* $i übernimmt die rolle der ID (also muss der
    submitbutton in dem fall so heißen:
    submitbutton_id z.B. submitbutton_15 */
       
    $id $i;
      }
     }
    if(isset(
    $id)) {
     
    //nun haben wir die ID, also können wir die felder auslesen:
     
    $feld_name $_POST['feld_name_'+$id];
     
    $feld_xy $_POST['feld_xy_'+$id];
     } else {
       
    $error "ID nicht gefunden...";
     }
    //und so weiter...

    Damit hättest du dann alle daten die du brauchst, kannst sie dann in ne DB oder sonstwo eintragen lassen (auch mit php).


    Hoffentlich stimmt das auch alles so, habs nämlich nicht ausprobiert und es ist doch recht spät jetzt ^^"

    Ist auch natürlich noch lange nicht fertig, es ist nur das konzept dahinter, den rest darfst du machen
    Geändert von Grevas (29.07.2009 um 00:48 Uhr) Grund: diese vertippser...

Ähnliche Themen

  1. Ajax/PHP Formular
    Von HundeHaar im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 27.02.2009, 13:52
  2. Ajax: PHP-Script braucht zu lang
    Von FaFoo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 13.06.2008, 14:58
  3. Ajax - Nodes mit HTML drin auslesen
    Von ::RMB:: im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 24.10.2007, 23:29
  4. PHP Formular Script
    Von ncm85 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 24.01.2007, 03:19
  5. java-script - formular arbeiten
    Von GreenRover im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 05.01.2005, 16:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •