You are not logged in.

  • Login

1

Saturday, April 15th 2006, 8:48am

Hallo an Alle,

ich würde den Ajax, PHP Code gern einmal austesten, doch wie ist die Mysql-Datenbank aufgebaut - komme nicht dahinter. Kann mir bitte einer helfen?

Würde schon genügen, die Feldnamen, Felddatentapen und Länge. Sind es eine oder zwei Tabellen in der Datenbank?

Schöne Osterfeiertage noch.

2

Saturday, April 15th 2006, 11:34am

Hallo Universum,

schau mal im Wiki vorbei
Da gibt ein HowTo zum Nachladen via Datenbank:
:arrow: Ajax Inhalte mit PHP und Select nachladen

Datenbank aufbau wäre
id (PK) ; gruppe ; title ; text

wenn du nicht weiterkommst, einfach nochmal posten
auch frohe ostern!

3

Saturday, April 15th 2006, 1:18pm

Hallo d0nUt – danke für die schnelle Antwort.

Also .... ich bringe es nicht hin, irgendwo habe ich einen Knoten!

Mein Plan: Ich habe in der Datenbank die Tabelle Länder,
land_id (PK)
land_bezeichnung

die weitere Tabelle ist Bundesland,
bland_id (PK)
land_id
bland_bezeichnung.

Mein Ziel: Ich will, dass in dem ersten Listenfeld die Länder auszuwählen sind und in Abhängigkeit im zweiten Listenfeld nur die Bundesländer erscheinen. Nach der Auswahl des Bundeslandes geht es weiter was bedeutet, ich muss auf beide ID`s zugreifen können (in PHP), da diese Eingabe die Grundlage für eine weitere Tabelle ist.
Geht das überhaupt mit Ajax?
Wenn ja, könntest mir nicht die Routinen erläutern, was ich dazu brauche – oder ist die Bitte unverschämt?

Grüße

4

Saturday, April 15th 2006, 2:19pm

hehe, ist kein problem

hier mal eine vermeintliche lösung (ungetestet)

formular.php

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
<html><head>
<title>AJAX PHP Beispiel mit Select</title>
 
<script type="text/Javascript">
<!--
function sendRequest() {
	try {
		req = window.XMLHttpRequest?new XMLHttpRequest(): 
		new ActiveXObject("Microsoft.XMLHTTP"); 
	} catch (e) {
		//Kein AJAX Support
	} 
 
	req.onreadystatechange = handleResponse;
	id = document.getElementById('dropdown').value;
	req.open('get', 'func.php?s='+ id);
	req.send(null); 
}
 
function handleResponse() {
	if ((req.readyState == 4) && (req.status == 200)) { 
		document.getElementById('select2').innerHTML = req.responseText;
	}
}
//-->
</script>
 
</head>
<body>
 
<p />Wählen Sie einen Eintrag aus um den Inhalt zu laden
 
<p /><select id="dropdown" onChange="sendRequest()">
<?
include 'connect.php'; // Hier die Verbindung zur Datenbank herstellen
 
$result = mysql_query("SELECT land_id,land_bezeichnung FROM `Laender`; ");
while($row = mysql_fetch_object($result))
{
	echo '<option value="'.$row->land_id.'">'.$row->land_bezeichnung.'</option>';
}
?>
</select>
 
<div id="select2"></div>
 
</body></html>


func.php

PHP Quellcode

1
2
3
4
5
6
7
8
9
<?
echo '<selct name="bundesland">';
$result = mysql_query("SELECT bland_id,bland_bezeichnung FROM `Bundesland` WHERE `land_id` = $_GET[s]; ");
while($row = mysql_fetch_object($result))
{
	echo '<option value="'.$row->bland_id.'">'.$row->bland_bezeichnung.'</option>';
}
echo '</select>';
?>

5

Saturday, April 15th 2006, 3:00pm

Hallo d0nUt – danke für die Mühe, die Du Dir gemacht hast.
Ich habe alles in zwei Scripte kopiert zum testen, doch bleibt das 1. Listenfeld leer, ich vermute, dass dadurch das zweite Listenfeld auch nicht angezeigt wird?

Es ist als Anfänger nicht leicht! Eigentlich weiß ich kaum, wo ich den Fehler suchen soll.

LG

6

Saturday, April 15th 2006, 5:49pm

aber du hast schon alle daten in der Datenbank?
denn, würde was am code nicht stimmen, dann würde er zumindest einen fehler ausgeben

ergänze deine $result abfrage bitte mal zu folgendem

Source code

1
$result = mysql_query("SELECT land_id,land_bezeichnung FROM `Laender`; ")or die('fehler in sql abfrage'); 

7

Saturday, April 15th 2006, 6:29pm

Hi,

das ergibt keine nennenswerte Veränderung.

Code:
$result = mysql_query("SELECT land_id,land_bezeichnung FROM `Laender`; ")or die('fehler in sql abfrage');

Trotzdem bleibt mein Listenfeld leer.

Die Datenbank ist schon in Ordnung.

Grüße

8

Saturday, April 15th 2006, 7:23pm

das heißt aber, dass alles korrekt gelesen wurde

direkt unter das $result = ...
könntest du noch ein

PHP Quellcode

1
echo 'die tabelle hat '.mysql_num_rows($result).' eintraege';

machen um zu überprüfen ob die tabelle wirklich inhalte hat.

falls eine zahl >0 rauskommt, dann probier noch folgenden code (irgendwo in der datei platzieren)

PHP Quellcode

1
2
3
4
5
6
<?
$result = mysql_query("SELECT * FROM `Laender`; ");
while($row = mysql_fetch_array($result))
{
	print_r($row);
}?>

9

Sunday, April 16th 2006, 11:54am

Hi,

also, ich bin nun irgendwie im großen schwarzen Loch verschwunden - blicke es nicht mehr.

Ich habe den Code: echo 'die tabelle hat '.mysql_num_rows($result).' eintraege'; direkt nach $result.. eingebaut, doch er zeigt nichts an.

Die Datenbank ist da und ich kann mit anderen Skripten darauf zugreifen.

Ich denke, einfach Abstand gewinnen und noch einmal von vorn beginnen.

Außerdem will ich Dir nicht die Osterfeiertage durch mein Problem vermießen.

Einstweilen vielen Dank.

Gruß

10

Sunday, April 16th 2006, 12:28pm

bevor du alles löschst: schau mal in den quelltext der fertigen seite
vielleicht sind die inhalte in irgendwelche falschen html tags gerutscht und werden daher nicht im browser dargestellt

11

Sunday, April 16th 2006, 1:19pm

Hi,

habe es eben noch durchgesehen, ist von der HTML-Tags alles klar strukturiert - aso, dies ist es nicht.

Grüße

12

Sunday, September 3rd 2006, 4:50pm

fehlt was? vielleicht

Habe alles ausprobiert, es funktionierte, als ich drauf kam, daß auch in der func.php zuvor ein connect zur Datenbank hergestellt werden muß!!!

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
<?
 
require ('.htmysql');
include 'dblib.inc'; // Hier die Verbindung zur Datenbank herstellen
 
//Inhalte laden
$result = mysql_query("SELECT gb_id, gb_mail, gb_url FROM `j4u_gb` WHERE `gb_id` = $_GET[s]; ");
while($row = mysql_fetch_object($result)) 
{
        echo '<p /><b>'.$row->gb_mail.'</b><br />'.$row->gb_url;
}
?>

13

Monday, December 25th 2006, 5:12pm

Hallo,

ich habe bei mir auch dieses Script in ein Formular eingebaut. Wie kann ich nun mit dem inhalt der Selectbox auf der func.php weiterarbeiten.

Ich will nun die Sachen aus beiden Select Boxen eintragen in eine SQL Datebank, habe es versucht mit dem $_POST befehl mit PHP nur da das Selectfeld ja nicht auf der Hauptseite ist auf der das Formular abgeschickt wird muss man dies denke ich mal anders lösen.

Hat da jemand eine Idee?

14

Monday, December 25th 2006, 5:47pm

nein, wenn du ein <form> drumherum hast und das select einen namen hat, funktionierts auch so.

15

Monday, December 25th 2006, 5:55pm

Quoted from ""d0nUt""

nein, wenn du ein <form> drumherum hast und das select einen namen hat, funktionierts auch so.


in der func.php habe ich nun kein form drum gemacht aber in der hauptseite ist ein Forum halt drum herum wo die slect box aufgerufen wird.

Es habe das schon soweit mal getestet aber es wird nie was in die Datenbank eingetragen

16

Monday, December 25th 2006, 6:24pm

prinzipiell klappt es aber.





Wenn wir dir helfen sollen, musst du schon nen Thread mit deinem Code erstellen.
Aber lies dir bitte vorher den folgenden Thread durch. Da siehst du schon die typischen Wege zur Fehlersuche:
http://www.easy-coding.de/nachgeladenes-ajax-select-mit-formular-absenden-t2755.html#11464

17

Thursday, September 24th 2009, 8:08pm

Hi,
es tut mir leid das ich so ein altes thema raushole, aber auf google seid ihr damit oben gelistet :D

Also, die abfragen usw klappen alle wunderbar, nur ich hab eine frage.

Kann man das script umschreiben, so das es nicht in einer func.php ist, sondern im selben php dokument?

req.open('get', 'func.php?s='+ id);

Ziel ist es, einfach eine datei zu sparen, sofern das geht :D

Danke schonmal

18

Friday, September 25th 2009, 1:52pm

Hi,

natürlich kannst du auch die selbe Datei aufrufen.
Dafür musst du nur den Inhalt der func.php in dein Script kopieren und eine if Konstruktion einbauen die eine Anfrage und ein Ajax Request unterscheiden kann, da du bei der Rückgabe den restlichen Overhead entfernen musst.

Für die Unterscheidung könntest du den Header abfragen oder viel einfacher den Post Parameter.
Z.B könntest du beidem request ajax=true anhängen um das abzufragen.

Hast du gesehen, dass es eine neue Version gibt ?
Select-Auswahl mit AJAX Abhängigkeit

Beim nächsten mal bitte einfach ein neues Thema eröffnen, anstatt so ein altes Thema wieder zu eröffnen.

Social bookmarks