ilch Forum » Allgemein » HTML, PHP, SQL,... » post ajax jquery

Geschlossen
  1. #1
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    Liebe Ilch Communty glücklich...,

    ich hoffe ihr könnte mir weiterhelfen.. und zwar möchte ich ein POST machen ohne reload... also per ajax.. verwenden tuhe ich das jquery framework..,
    ich hoffe hier gibt es ein paar die auch jquery verwenden und mir weiterhelfen können..

    mein code:

    $("#formu").live("click", function(){
      var ajaxOpts = {
        type: "post",
        url: "test.php",
        data: "txtEingabe=John",
        success: function(data){
       
        }
      }
      jQuery.ajax(ajaxOpts);
    });
    
    
    <form name="formu" id="formu">
    <input type="text" name="txtEingabe" >
    </form>


    Das Problem liegt einfach darin das der reload immer noch vorhanden ist..,

    meine kentnisse was jquery anbelangt und ajax sind noch nicht ausreichend groß..

    Mfg freak
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Oldemuche Mitglied
    Registriert seit
    11.04.2006
    Beiträge
    1.027
    Beitragswertungen
    44 Beitragspunkte
    Probier es mal so lächeln

    Ungetestet basierend auf diesem Tutorial.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Beschreibung der Seite</title>
    </head>
    <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
    <script>
    $(document).ready(function()
      {
      ('#test').click(function ()
        {		
        var data = txtEingabe=John;
        $.ajax(
          {
      	  url: "test.php",
      	  type: "GET",
      	  data: data,
      	  success: function (reqCode)
            {
      		  if(reqCode==1) 
              {
       		    $('.done').fadeIn('slow');
      		    }else{ 
              alert('Fehler beim Abschicken des Formulares.');
              }				
      	    }		
          });
        return false;
        });	
      });
    </script>
    <body>
    <div style="display: none;">
    <b>Vielen Dank. Wir haben Ihre Anfrage erhalten</b>
    </div>
    <b id="test" style="cursor: pointer;">TEST</b>
    </body>
    </html>
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Sieht soweit i.O. (jedoch nicht wirklich schön) aus, nur sollte das div Element auch die Klasse "done" bekommen (schöner wäre übrigens id).


    Zuletzt modifiziert von Ithron am 21.11.2010 - 22:28:41
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    ich habe meinen code geändert und jetzt funktioniert das auch, jedoch ist jetzt ein weiterer fehler aufgetretten...,

    einfach mal vom kuddelmuttel weg sehen ich probier grad nur aus

    meine erste php
    <!DOCTYPE html>
    <html>
    <head>
      <style>
     body{ font-size: 12px; font-family: Arial; }
     </style>
      <script type="text/javascript" src="http://labs.sidemax.de/socialnet/navi/jquery-ui-1.8.5.custom/js/jquery-1.4.2.min.js"></script>
    </head>
    <body onLoad="doTimer()">
      
    <b>Chat:</b>
    <ol style="border:solid; border-color:#000000; border-width:1px;" id="new-nav"></ol>
    
    <script>
    			
    $(document).ready(function() {
      //click event f&#65533;r submit button
      $('#submit').click(function () {		
    		
      //Daten von den HTML Feldern in JS-Vars &#65533;bersetzen
      var txtEingabe = $('input[txtEingabe=txtEingabe]');
      
      //die Daten sollen per GET an das PHP Skript weitergeleitet werden. Daf&#65533;r bauen wir einen 
      //String
      var data = 'txtEingabe=' + txtEingabe.val();
    		
      //Request abschicken
      $.ajax({
    	//Ort des Skriptes in dem die per GET &#65533;bertragenen Daten verarbeitet werden sollen
    	url: "test.php",	
    	//Angabe der GET Methode, auch POST w&#65533;re m&#65533;glich. Allerdings nur sinnvoll
            //bei gr&#65533;&#65533;eren Datenmengen
    	type: "POST",
    	//Daten die gesendet werden sollen			
    	data: data,
    	
    	success: function (reqCode) {				
    	//wenn saveData.php true bzw. den Status 1 zur&#65533;ckliefert
    		if (reqCode==1) {					
    			alert('alles super');
    					
    		//wenn der Request eine Form von false zur&#65533;ckschickt, Fehler ausgeben.
    		} else{ 
                 alert('Fehler beim Abschicken des Formulares.');
            }				
    	}			
    });
    		
    	return false;
            //der return wird ben&#65533;tigt, damit das Formular nicht tats&#65533;chlich abgeschickt wird und         
            //sich nicht wie ein normales Form mit Seiten Refresh verh&#65533;lt.
    	});	
    });	   
    
    setInterval("doTimer()", 500);
    function doTimer(){
      $("#new-nav").ajaxStart(function(){
      });
      $('#new-nav').load('chat.txt');
    }
    </script>
    <!--onkeypress="return evalKeyForSubmit(event, this.form);"  id="txtEingabe"-->
    <form method="post">
    <input type="text" name="txtEingabe" >
     <input type="submit" style="display:none;" id="submit" />  
    </form>
    </body>
    </html>


    und das ist die test.php
    <?php
    
        //do some data saving stuff
        $allGood = saveMethod($_POST['txtEingabe']);
     
        if($allGood){ 
            echo 1;
        }else{
            echo 2; 
        }
     
    function saveMethod($text){
      //do some DB queries
      return true;
    }
    ?>


    jetzt will ich den post den die datei zu der test.php übergeben hat in eine txt schreiben, jedoch wenn ich diesen code hinzufüge

    $txt = $_POST['txtEingabe'].'#';
    $datei_handle=fopen("chat.txt",'a+');
    fwrite($datei_handle,$txt);
    fclose($datei_handle);


    bringt mir mein ajax code immer nur die fehlermeldung

    alert('Fehler beim Abschicken des Formulares.');


    lass ich jedoch das mit dem txt schreiben draußen funktioniert es ganz normal..
    laut text anzeigen...

    Mfg freak
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Dann lass dir mal fehler in der php ausgeben und den response code im alert ausgeben.
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    eine php fehlermeldung bekomme ich nicht wenn ich auf absenden drücke bekomme ich das alert "Fehler beim Abschicken des Formulares." ausgegeben...,
    lass ich jedoch das mit dem txt weg bekomme ich das alert "alles super" ausgeben als obs funktioniert..?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Du hast also alert(reqCode) gemacht und im PHP Script per error_reporting(E_ALL) Fehlerausgabe aktiviert? Falls ja nutz diese PHP Datei (weiterhin aber den reqCode ausgeben lassen - denn der ist ja nichts anderes als die Ausgabe des Scripts).

    <?php
    $txt = $_POST['txtEingabe'].'#';
    $datei_handle=fopen("chat.txt",'a+') or die('fopen fehler');
    fwrite($datei_handle,$txt) or die('fwrite fehler');
    fclose($datei_handle) or die('fclose fehler');
    
    echo 1;



    Zuletzt modifiziert von Ithron am 21.11.2010 - 22:56:17
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    also ich verstehe was du meinst glücklich..,
    jetzt hab ich aufjedenfall schon gessehen, was ich recht komisch finde..,

    ihc habe in die test.php echo 1; geschrieben jedoch bekomme ich immer noch das alert "Fehler beim Abschicken des Formulares."
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Nein du verstehst immer noch nicht was ich meine. Du sollst den reqCode ausgeben lassen! Scheiß auf die IF Abfrage..

    success: function(reqCode) {
        alert(reqCode);
    }
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    1 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    ithron du bist ein schatz ;-)...,
    danke dir... hab meine fehler gefunden gehabt..=)
    naja so idioten wie mich muss es auch mal geben ;-)
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten