php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.03.2010, 19:29  
Benutzer
 
Registriert seit: 17.12.2009
Beiträge: 49
PHP-Kenntnisse:
Anfänger
MueThoS befindet sich auf einem aufstrebenden Ast
MueThoS eine Nachricht über Skype™ schicken
Standard [Erledigt] mit AJAX Daten speichern klappt nicht (TYP falsch?)

Hallo, brauche mal wieder einen TIP.

Ich habe schön nen Shoutbox-Tutorial nach gemacht, klappt jetzt auch.
So, direkt mal was großes (für mich zumindest) draus machen
Habe 2 DIVs in einem ist die Userliste mit AJAX geholt:
Code:
function loadliste()
{
 if (xmlHttp) {
     xmlHttp.open('GET', 'include/ajax_user_edit_list_getdata.php', true);
     xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
             document.getElementById("userliste").innerHTML = xmlHttp.responseText;
         }
     };
     xmlHttp.send(null);
 }
}
In dem anderen hole ich bei klick auf einen User ein Formular mit:
Code:
function loadform(user_id)
{
	if (xmlHttp) {
    	xmlHttp.open('POST', 'include/ajax_user_edit_form_getdata.php');
	    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    xmlHttp.send('user_id='+user_id);
		xmlHttp.onreadystatechange = function () {
    	     if (xmlHttp.readyState == 4) {
      	       document.getElementById("editor").innerHTML = xmlHttp.responseText;
      	   }
     	};
     	
	}
}
Klappt beides, ich hoffe ich mache das richtig so???

Jetzt will ich die Daten des Forms wieder mit ajax weg schreiben und die Liste neu laden.
Liste neu laden geht aber er öffnet mir nicht die Datei in der ich speichern möchte.
Code:
function saveform()
{
	var str = $("form").serialize();
	if (xmlHttp) {
		xmlHttp.open('POST', 'include/ajax_user_edit_form_setdata.php');
    	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	xmlHttp.send('data='+str);
     	xmlHttp.onreadystatechange = function () {
    		if (xmlHttp.readyState == 4) {
      	    	document.getElementById("editor").innerHTML = xmlHttp.responseText;
			}
		};
	}
	loadliste();
}
Habe gelesen das ich mit serialize() die POST-Daten alle als String habe. Würde die dann in der PHP wieder zerpflücken.
Aber FireBug sagt aborted, sonst kann ich keine Fehleranzeuige finden.
Wenn ich das richtig verstehe liegt es hier dran:
Code:
xmlHttp.send('data='+str);
Gibts da ein Problem mit dem Content-Type und dem String?

Finde nichts wo mir da weiter hilft.
MueThoS ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.03.2010, 18:22  
Benutzer
 
Registriert seit: 17.12.2009
Beiträge: 49
PHP-Kenntnisse:
Anfänger
MueThoS befindet sich auf einem aufstrebenden Ast
MueThoS eine Nachricht über Skype™ schicken
Standard

Keiner eine Idee?
Oder fehlen Angaben?
__________________
Gruß MueThoS
MueThoS ist offline   Mit Zitat antworten
Alt 15.03.2010, 18:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Bitte keine Push-Postings!
Javascript ist nicht PHP. Bitte Forenstruktur beachten!

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.03.2010, 19:02  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Lass dir den String vorher mal testweise ausgeben. Ich könnte wetten, er sieht irgendwie so aus:
Zitat:
data=value1=x&value2=y
serialize() erstellt nämlich schon die Key-Value-Struktur, da kannst du nicht noch ein data= davorsetzen. Das, was du da sendest, sind nämlich die POST-Daten, die du per $_POST abrufst. Wenn du eine Variable $_POST['data'] mit den entsprechenden Daten haben willst, darfst du nicht serialize() nehmen, sondern die native JavaScript-Funktion encodeURIComponent(). Alternativ kannst du auch das jQuery-Plugin URL Encode nutzen. Bei Forminhalten erscheint mir das aber relativ sinnlos. Ich denke eher, dass du ganz normal die POST-Variablen haben willst, als wenn das Formular ganz normal ohne AJAX abgesendet worden wäre.

Aber du nutzt jQuery, ja? Wieso lässt du das nicht auch die AJAX-Arbeit übernehmen? AJAX-Requests selbst zusammenzubauen ist immer ein ziemlicher Aufwand.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 15.03.2010, 22:16  
Benutzer
 
Registriert seit: 17.12.2009
Beiträge: 49
PHP-Kenntnisse:
Anfänger
MueThoS befindet sich auf einem aufstrebenden Ast
MueThoS eine Nachricht über Skype™ schicken
Standard

Ja ich habe jquery mit im Project. Nutze es aber im mom noch so gut wie garnicht da ich noch große Probleme damit habe.
Das liegt nicht an jquery sondern generell an der neuen Materie.
Im Shoutbox-Tut war das so gemacht und das hat so gut geklappt deshalb habe ich das übernommen.

Aber nun nochmal zu meinem Problem:
Ich habe raus gefunden wo das Problem mit dem abbruch lag.
Irgendwie fand der das garnicht lustig das ich einfach die Liste neu laden möchte bevor er die Formularanfrage weg geschickt hat.
Wenn ich das loadliste raus kommentiere gehts soweit.
zumindest kommt kein Fehler mehr.

Ich habe zwar jetzt keine Ahnung wo oder wie ich die Liste neu Laden soll aber ich denke das ist für euch keine Große Sache.
Ich habe dadurch raus gefunden das dieses xmlHttp.readyState == 4 bedeutet das wenn er fertig ist wird der folgende Code ausgeführt.
Ok, trage ich aber hier meine loadliste ein geht zwar die Formularabfrage weiterhin aber loadliste läd laut Firebug endlos.
Also wird nie fertig.

Wenn Ihr mir da nochmal helfen könnt?
Dann könnte ich mich erstmal wieder mit der Formularbearbeitung befassen.
Was noch sehr interessant währe:
Ich will aus der Formularauswertung natürlich auch was zurück geben.
Entweder ein: Alles Toll (und die Liste neu laden) oder das Formular mit hinweisen das was schief gegangen ist)
Wie kann ich die rückgabe dahingehen abarbeiten?
Kann ich xmlHttp.responseText auf "OK" auswerten und wenn ja sagen lade neu und zeige "TOLL"
und wenn nein halt xmlHttp.responseText anzeigen wo dann das formular wieder drinne ist?

Hui, langer Text ich hoffe das ließt jemand

Danke schon mal im vorraus....
__________________
Gruß MueThoS
MueThoS ist offline   Mit Zitat antworten
Alt 16.03.2010, 06:06  
Benutzer
 
Registriert seit: 17.12.2009
Beiträge: 49
PHP-Kenntnisse:
Anfänger
MueThoS befindet sich auf einem aufstrebenden Ast
MueThoS eine Nachricht über Skype™ schicken
Standard

Hallo,
es klappt jetzt.
Und es lag wirklich daran das die abfragen sich gegenseitig stören.
Heißt das es kann immer nur eine AJAX-Anfrage laufen?
Also ich könnte nicht beide DIVs gleichzeitig nach laden?

Ist sicher nicht der Richtige Weg aber so geht es:
Code:
function saveform()
{
    var str = $("form").serialize();
    if (xmlHttp) {
        xmlHttp.open('POST', 'include/ajax_user_edit_form_setdata.php');
        xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttp.send(str);
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4) {
                document.getElementById("editor").innerHTML = xmlHttp.responseText;
                setTimeout("loadliste()",1000); 
            }
        };	
    }	
}
__________________
Gruß MueThoS
MueThoS ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Daten werden falsch ausgegeben marmuel Datenbanken 13 16.02.2010 18:42
Daten aus Datenbank in einem MultiArray speichern proark PHP Tipps 2009 4 26.02.2009 14:36
array fehlerausgebe, daten speichern scheffie PHP Tipps 2009 1 10.01.2009 13:47
Daten aus Datenbank in eine Variable speichern cyberfreak PHP Tipps 2008 1 24.04.2008 15:20
daten aus iframe speichern fragnicht JavaScript, Ajax und mehr 0 06.08.2007 17:29
Daten über Formular eingeben und in Tabelle speichern. WIE? PHP Tipps 2006 20 10.02.2006 16:04
Daten speichern PHP Tipps 2006 21 06.02.2006 23:04
Daten aus Datenbank sinnvoll speichern PHP Tipps 2006 15 02.02.2006 19:54
Speichern sensibler Daten CC84 PHP Tipps 2006 4 18.01.2006 21:54
Daten temporär speichern picco PHP Tipps 2005-2 14 13.08.2005 01:07
"Typ Set" Daten aus Formular werden falsch abgespe Datenbanken 3 25.07.2005 09:36
[Funktion serialize] Daten in die MySQL-Datenbank speichern. PHP Tipps 2005-2 2 24.06.2005 15:10
[Erledigt] Daten auslesen - Daten hinzufügen - Daten Speichern PHP Tipps 2004-2 1 04.12.2004 10:59
Daten in einer Textdatei Speichern PHP Tipps 2004 3 19.08.2004 17:13
Ist es erlaubt Daten des Users in DB zu speichern Off-Topic Diskussionen 2 06.08.2004 16:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/javascript-ajax-und-mehr/65715-erledigt-mit-ajax-daten-speichern-klappt-nicht-typ-falsch.html, jquery daten speichern, ajax xml speichern, javascript daten speichern, xmlhttp.open, jquery urlencode, jquery xml speichern, xml attribute auslesen, ajax formular speichern, via ajax daten speichern, xml ajax speichern, formulardaten speichern jquery, ajax daten in php datenbank, mit ajax daten speichern, ajax formular daten xml speichern, ajaxy daten auslesen, jquery datenbank speichern tutorial form, mit jquery in xml schreiben, php daten speichern javascript, ajax daten mit php speichern

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum