You are not logged in.

  • Login

1

Sunday, March 19th 2006, 6:56pm

AJAX/PHP/MySQL und einem Formular

Hallo Community

Ich bin gestern auf diese Seite gestoßen, als ich nach einer Lösung meines Problemes gesucht habe.
Gleich vorweg, ich Code in PHP, bzw versuche das beste daraus zu machen :D Ich mache dies nur des „Spaßes“ wegen und bin kein Profi. Wenn man in anderen Foren eine Frage stellt, welches auch noch in der Anfänger Teiles gestellt worden ist, wird man gleich mit Hochkomplizierten Funktionen von sogenannten „Profis“ bombardiert und teilweise sogar noch beschimpft, warum man nicht Google oder in die Dokumentation schaut. Dabei vergessen viele, dass es einige gibt die so etwas nur als Hobby ansehen und nicht mehr. Und so etwas nennt sich dann Anfängerforum. Achso, warum ich dies alles erzähle!? In der Regel melde ich mich gar nicht mehr in solche Foren an, aber gestern bin ich mal hier die Beiträge durchgegangen und siehe da, vielleicht besteht hier die Chance, dass es ein wenig anders ist ;)

So, und nun meinem Problem

Ich habe ein Formular, welches dafür da ist Daten in die MySQL DB einzufügen. Derzeit habe ich eine Lösung die mir gar nicht gefällt, die arbeitet über 2 Seiten und ist nicht wirklich das Wahre. Vorher müsste sich aber Formular diverse Daten aus der DB holen. AJAX könnte vielleicht die Lösung sein.
Im Formular sind einige Felder (nennen wir sie mal einfach Titel und Version) und 2 weitere, welche aber erst aus der DB ausgelesen werden müssen (von denen brauche ich sowohl die ID als auch den Namen, die ID wird dann am ende übergeben). Leider kann ich die Daten nicht direkt aus der DB holen, weil es einfach zu viele sind und die Page auf 800kb kommen würde, das ist eindeutig zu viel.
Mein Gedanke ist dieses, 2 Auswahlboxen, in der ersten kann der User einen Buchstaben wählen, dann werden die Daten aus der DB geladen und in der 2ten Box geladen. Dies müsste doch zu machen sein. Ich habe sogar so etwas ähnliches hier gesehen. Für einige Anregungen, Tipps oder Hilfe wäre ich Dankbar.

2

Sunday, March 19th 2006, 7:31pm

willkommen bei easy-coding,

generell beantworten wir natürlich alle anfängerfragen.
der einzige punkt an dem ich halt mache, ist, wenn ich merke, dass mein gegenüber nur fertige codes haben will anstatt irgendetwas selbst zu probieren... aber darauf mache ich dich rechtzeitig aufmerkam, also keine angst beim fragen stellen..

Für dein Problem empfehle ich den angehängten Beispielcode aus dem Wiki

was du ändern musst, ist eigentlich nur der MySQL Part
Probiers mal aus..
Torben Brodt has attached the following file:

3

Sunday, March 19th 2006, 7:52pm

Danke! :)
Dies ist zwar noch nicht genau das was ich möchte, aber es funzt :)
Werd jetzt mal ein wenig rumprobieren und es anpassen so das in Auswahlboxen passt.

Edit: Da bin ich schon wieder ;)

Habe es ein wenig umgeschrieben und funktioniert bestens:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html><head>
<title>AJAX PHP Beispiel mit Select</title>
 
<script type="text/Javascript">
<!--
function createXMLHttpRequest() {
 
	var ua;
 
	if(window.XMLHttpRequest) {
		try {
			ua = new XMLHttpRequest();
		} catch(e) {
			ua = false;
		}
	} else if(window.ActiveXObject) {
		try {
			ua = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			ua = false;
		}
	}
	return ua;
}
 
var req = createXMLHttpRequest();
 
function sendRequest() {
	id = document.getElementById('dropdown').value;
	req.open('get', 'func.php?s='+ id);
	req.onreadystatechange = handleResponse;
	req.send(null);
}
 
function handleResponse() {
 
	if(req.readyState == 4){
		document.getElementById('inhalt').innerHTML = req.responseText;
	}
	else
	alert("loading" + ajax.readyState);
}
//-->
</script>
 
 
<p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
<table border="0" cellspacing="0" cellpadding="0">
	<tr>
	<td><select name="entwickler" size="4" multiple="multiple" id="dropdown" onChange="sendRequest()">
<?
echo '<option value="a">A</option>';
echo '<option value="b">B</option>';
?>
	</select>
	</td>
	<td width="2"></td>
	<td><div id="inhalt"></div></td>
	</tr>
</table>
 
 
</body></html>


Nun brauche ich dies nochmal auf der Seite welches eine weitere Datenbankabfrage tätigt, leider bekomme ich dies nicht gebacken. Habe zwar ein wenig rumgespielt, aber es wird nur ein Ergebniss angezeigt.


Edit die 2te:
So, habe es doch hinbekommen :)
Hier der Code:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<html><head>
<title>AJAX PHP Beispiel mit Select</title>
 
<script type="text/Javascript">
<!--
function createXMLHttpRequest() {
 
	var ua;
 
	if(window.XMLHttpRequest) {
		try {
			ua = new XMLHttpRequest();
		} catch(e) {
			ua = false;
		}
	} else if(window.ActiveXObject) {
		try {
			ua = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			ua = false;
		}
	}
	return ua;
}
 
var req = createXMLHttpRequest();
 
function sendRequest() {
	id = document.getElementById('dropdown').value;
	req.open('get', 'func.php?s='+ id);
	req.onreadystatechange = handleResponse;
	req.send(null);
}
 
function sendRequest2() {
	id = document.getElementById('dropdown2').value;
	req.open('get', 'func_2.php?s='+ id);
	req.onreadystatechange = handleResponse2;
	req.send(null);
}
 
function handleResponse2() {
 
	if(req.readyState == 4){
		document.getElementById('inhalt2').innerHTML = req.responseText;
	}
	else
	alert("loading" + ajax.readyState);
}
 
function handleResponse() {
 
	if(req.readyState == 4){
		document.getElementById('inhalt').innerHTML = req.responseText;
	}
	else
	alert("loading" + ajax.readyState);
}
//-->
</script>
 
 
<p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
<table border="0" cellspacing="0" cellpadding="0">
	<tr>
	<td><select name="entwickler" size="4" multiple="multiple" id="dropdown" onChange="sendRequest()">
<?
echo '<option value="a">A</option>';
echo '<option value="b">B</option>';
?>
	</select>
	</td>
	<td width="2"></td>
	<td><div id="inhalt"></div></td>
	</tr>
</table>
 
<p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
<table border="0" cellspacing="0" cellpadding="0">
	<tr>
	<td><select name="entwickler2" size="4" multiple="multiple" id="dropdown2" onChange="sendRequest2()">
<?
echo '<option value="a">A</option>';
echo '<option value="b">B</option>';
?>
	</select>
	</td>
	<td width="2"></td>
	<td><div id="inhalt2"></div></td>
	</tr>
</table>
</body></html>

4

Monday, March 20th 2006, 2:19pm

öhm, super ;-)

und nach deiner vorsichtigen begrüßung hatte ich eigentlich einen voll-noob erwartet..
so täuscht man sich, sry

5

Monday, March 20th 2006, 3:50pm

Quoted from ""d0nUt""

öhm, super ;-)

und nach deiner vorsichtigen begrüßung hatte ich eigentlich einen voll-noob erwartet..
so täuscht man sich, sry


Nene, nen voll-noob bin ich nicht, trotzdem gibt es noch genug wo ich nicht durchblicke :)

PHP ist halt nur ein Hobby für mich. "Der Profi" werde ich wohl nie werden, einfach zu wenig zeit ^^

6

Friday, August 14th 2009, 3:24am

So geht es auch: Prototype

Schaut euch in meinem Videotutorial an wie ich mit Protype Daten in die mysql rein und rausziehe. das ist die easieste variante
http://muenchenwebdesign.com/devblog/200…nbank-einlesen/

7

Friday, August 14th 2009, 10:02am

klingt interessant, schau ich mir später mal an.

In unserem Wiki gibts übrigens auch einen neuen Artikel zum Thema: Formulare mit AJAX.. und ohne
Ziel ist die Anwendung mit und ohne AJAX zum Laufen zu bekommen.

Social bookmarks