php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-07-2011, 17:35
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard [AJAX] Formular abarbeiten

Hallo,

ich sitz hier schon den ganzen Tag an einem Problem fest.

Folgendes...

Ich habe ein Formular mit mehreren Checkboxen und einem Textfeld.
Nun soll wenn ich auf Senden klicke die Textbox verarbeitet werden.
Der Text soll an jede pro Checkbox einmal abgeschickt werden.

Mache ich das ohne AJAX, kommt irgendwann ein Timeout (Script im Hintergrund braucht etwas länger).

Ich möchte also das der Text der Reihe nach verschickt wird. Also Checkbox eins abgearbeitet, dann weiter mit Checkbox zwei usw.

Mein AJAX funktioniert soweit, allerdings arbeitet es direkt 2 Checkboxen ab.
Also wie bekomm ich es am besten hin das es der Reihe nach durchlaufen wird?

Hier mal der Code...

Code:
function get_back(a,id) { document.getElementById(id).innerHTML=a; }

function doIt(url,id) {
	var req = null;
	try req = new XMLHttpRequest();
	catch(ms) {
		try req = new ActiveXObject("Msxml2.XMLHTTP");
		catch(nonms) {
			try req=new ActiveXObject("Microsoft.XMLHTTP");
			catch (failed) req=null;
		}
	}
	if (req==null)
	alert("Error creating request object!");
	req.open("GET", url, true);
	req.onreadystatechange=function() {
		switch(req.readyState) {
			case 4: if(req.status!=200) {alert("Fehler:"+req.status);} 
				get_back(req.responseText,id);	break;
			default: return false; break;
		}
	};
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	req.send(null);
}


function doTweet() {
	var Accounts = new Array();
	var all_Inputs = document.getElementsByTagName("input");
	var all_Accs = new Array();
	var chkCounter = 0;
	
	for (var i=0;i<all_Inputs.length;i++) {
		if(all_Inputs[i].name=="account[]") all_Accs.push(all_Inputs[i]);
	}
	
	for (var z=0;z<all_Accs.length;z++) {
		var account = document.getElementsByName("account[]")[z];
		var nachricht = document.getElementsByName("nachricht").value;
		if(account.checked==true) {
			document.getElementById('process'+z).style.display='block';
			doIt('ajax.php?account='+account.value+'&nachricht='+nachricht+'&id='+z,'process'+z);
		}
	}
}
Mit Zitat antworten
  #2 (permalink)  
Alt 14-07-2011, 17:38
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

Problem nicht nachvollziehbar. Wie soll man Text „an eine Checkbox schicken“?

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 14-07-2011, 17:41
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

Ich will keinen Text an eine Checkbox schicken!
Die Checkboxen besitzen unterschiedliche AccountIds.
Eine AccountId und die Nachricht sollen verarbeitet werden, dann die zweite Id, dritte usw.
Mit Zitat antworten
  #4 (permalink)  
Alt 14-07-2011, 17:51
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Okay, dass der Browser mehrere Checkboxen gleichzeitig abarbeitet, liegt daran, dass das A in AJAX für asynchron steht. Entweder du stößt erst im onreadystatechange-Callback den nächsten Request an oder du musst synchron arbeiten, also ganz ohne onreadystatechange.

Der momentane Ablauf ist der: Du gehst das Array durch und schickst jede Anfrage ab, was der Browser im Hintergrund parallel zur weiteren Script-Abarbeitung verarbeitet. Irgendwann, wenn du das Array durchlaufen hast, kommt die erste Antwort vom Server, vielleicht sogar mehrere gleichzeitig oder in veränderter Reihenfolge. Jede davon wird sozusagen in einem eigenen Thread von deinem onreadystatechange-Callback verarbeitet. Das ist das Wesen von AJAX.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 14-07-2011, 17:56
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

Wie müsste ich es angehen wenn ich im onreadystatechange-Callback den nächsten Request anstossen will?
Mit Zitat antworten
  #6 (permalink)  
Alt 14-07-2011, 18:08
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Clip2011 Beitrag anzeigen
Wie müsste ich es angehen wenn ich im onreadystatechange-Callback den nächsten Request anstossen will?
Die Frage ist so allgemein gestellt, dass ich nicht weiß, was ich dir anderes antworten soll als: „hol im Callback den nächsten Wert aus dem Array und sende ihn“.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 14-07-2011, 18:13
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

Genau das ist mein Problem.
Wie hole ich den nächsten Wert im Array und sende dann neu wenn das Script durchgelaufen ist?
Mit Zitat antworten
  #8 (permalink)  
Alt 14-07-2011, 18:17
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Übergib das Array an doIt, hol das erste Element mit shift() raus und ruf im Callback doIt mit dem dann verkürzten Array wieder auf.

Tipp: Da dir offenbar viele Grundlagen fehlen, empfehle ich das Studium von ein paar JS- und AJAX-Tutorials.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #9 (permalink)  
Alt 20-07-2011, 16:56
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

Da bin ich wieder.

Das ganze habe ich soweit hinbekommen, nur hab ich da noch ein Problem.

Wenn ich die Funktion die abgearbeitet werden soll in der PHP Datei die mittels AJAX aufgerufen wird auskommentiere, klappt alles Super.
Nehm ich die Funktion wieder rein, rennt es nicht.

Hier der AJAX Code...
Code:
		req.open("GET", url, true);
		req.onreadystatechange=function() {
			if(req.readyState == 4) {
				if(req.status!=200) {alert("Fehler:"+req.status);}
				
				if(req.responseText=="ready") {
					get_back('<img src="templates/img/tick.png" border="0" alt="" />',id);
					doTw(checked_Accs);
				}
			}
			else return false;
		};
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		req.send(null);
Habe mal nach if(req.status!=200) {alert("Fehler:"+req.status);} ein alert gemacht, das kommt. Aber er bekommt wohl "ready" nicht zurück.

Das PHP Script ansich funktioniert, nur bekommt die AJAX Funktion wohl ein readyState 4 und ein status 200 zurück obwohl die PHP Funktion noch garnicht abgearbeitet ist.

Eine Idee?
Mit Zitat antworten
  #10 (permalink)  
Alt 20-07-2011, 17:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Firebug nehmen, und HTTP-Statuscode und Inhalt der Antwort im Netzwerk-Tab kontrollieren.

Zitat:
Aber er bekommt wohl "ready" nicht zurück.
Und was ergab die Kontrollausgabe von req.responseText?

Kann auch nicht schaden, bei der Kontrollausgabe da mal ein "#" o.ä. vor und hinter zu hängen - damit du erkennen kannst, ob vielleicht zusätzlicher Whitespace in der Antwort drin steckt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 20-07-2011, 17:16
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

So, alles mal gemacht.

req.responseText ist leer.

Firebug sagt bei Status 200 und bei Antwort steht garnichts.
Mit Zitat antworten
  #12 (permalink)  
Alt 20-07-2011, 17:17
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Tja, dann gibt dein serverseitiges Script wohl nichts aus. Also debugge es.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 20-07-2011, 17:42
Clip2011
 Registrierter Benutzer
Links : Onlinestatus : Clip2011 ist offline
Registriert seit: May 2011
Beiträge: 9
Clip2011 befindet sich auf einem aufstrebenden Ast
Standard

Danke, habe den Fehler so jetzt finden können.

Habe die Funktion ausserhalb der normalen Webseite aufgerufen, da ja aus ner extra Datei. Daher passten zwei Includes nicht, wo ich dummerweise auch ein @ davor gemacht hatte und somit keinen Fehler bekam.

Ich danke dir. Hatte mittlerweile echt nen Brett vor dem Kopf.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular:sicherstellen das mit Ajax gesendetes Formular vom eigenen Formular stammt? Pums HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 16 04-12-2009 20:09
AJAX - formular Variable übergeben? Gamer20 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 14-08-2007 18:52
prob bei dyn. formular mit ajax extr3m0 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 5 02-07-2007 18:55
AJAX: Formular Peter_Panther HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 20-02-2007 16:07
[AJAX] Formular .elementrio HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 9 07-11-2006 16:37

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:46 Uhr.