Hallo Gemeinde,
ich bin neu hier und nicht wirklich bewandert in PHP und AJAX. Mir wurde die Aufgabe zuteil ein Modul zu schreiben bei dem ich Druckerdaten aus einer Datenbank auslesen soll. Ich habe mich an dem Beispiel hier versucht und komme aber nicht weiter.
Posting
Mein Code schlägt einfach nicht auf die dritte Select Box um.
Hier meine Form.php
Alles anzeigen
Die Verbindungseinstellungen habe ich weggelassen.
und hier meine func.php
Alles anzeigen
Ich wäre froh, wenn mir jemand helfen kann, damit ich dieses Modul zum laufen bekomme.
MfG
Andreas
ich bin neu hier und nicht wirklich bewandert in PHP und AJAX. Mir wurde die Aufgabe zuteil ein Modul zu schreiben bei dem ich Druckerdaten aus einer Datenbank auslesen soll. Ich habe mich an dem Beispiel hier versucht und komme aber nicht weiter.
Posting
Mein Code schlägt einfach nicht auf die dritte Select Box um.
Hier meine Form.php
Quellcode
- [code]<html><head>
- <script type="text/Javascript">
- <!--
- function sendRequest(digit) {
- try {
- req = window.XMLHttpRequest?new XMLHttpRequest():
- new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {
- //Kein AJAX Support
- }
- minus = digit-1;
- inhalt = document.getElementById('source' + minus );
- req.onreadystatechange = handleResponse;
- req.open('GET', 'func.php?dest='+ digit + '&s=' + inhalt.value);
- req.send(null);
- }
- function sendRequest2(digit) {
- try {
- req = window.XMLHttpRequest?new XMLHttpRequest():
- new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {
- //Kein AJAX Support
- }
- minus = digit-1;
- inhalt = document.getElementById('source' + minus );
- req.onreadystatechange = handleResponse;
- req.open('GET', 'func2.php?dest='+ digit + '&s=' + inhalt.value);
- req.send(null);
- }
- function handleResponse() {
- if(req.readyState == 4){
- var response = req.responseText;
- var update = new Array();
- if(response.indexOf('||' != -1)) {
- update = response.split('||');
- for(i=0; i<update.length; i+=2) {
- document.getElementById(update[i]).innerHTML = update[i+1];
- }
- }
- }
- else
- alert("loading" + ajax.readyState);
- }
- function handleResponse2() {
- if(req.readyState == 4){
- var response = req.responseText;
- var update = new Array();
- if(response.indexOf('||' != -1)) {
- update = response.split('||');
- for(i=0; i<update.length; i+=2) {
- document.getElementById(update2[i]).innerHTML = update2[i+1];
- }
- }
- }
- else
- alert("loading" + ajax.readyState);
- }
- //-->
- </script>
- </head>
- <body>
- <form method="post" action="">
- <div style="float:left" id="select1">
- <select name="source1" id="source1" onChange="sendRequest(2)">
- <option value="">Bitte Hersteller wählen</option>
- <?php
- //CAT = 0 könntest du verwenden um dein hauptmenü zu kennzeichnen
- $sql = "SELECT * FROM brand WHERE TYPE='OEM' AND IMPORTANCE='1' AND IDBRAND LIKE '20000%' ORDER BY NAME";
- $res = mysql_query($sql) or exit('<p>Fehler beim Auslesen der Daten.</p>' . mysql_error());
- // Initialisierung des Datenarrays
- $data = array();
- // Füllen des Datenarrays
- while($data[] = mysql_fetch_assoc($res));
- array_pop($data);
- foreach($data as $key) {
- echo '<option value="' . $key['IDBRAND'] . '">' . $key['NAME'] . '</option>';
- echo "\n";
- }
- ?>
- </select>
- </div>
- <div style="float:left" id="select2" name="select2">
- </div>
- <div style="float:left" id="select3" name="select3">
- </div>
- </form>
- </body></html>[/code]
Die Verbindungseinstellungen habe ich weggelassen.
und hier meine func.php
Quellcode
- [code]switch($_GET['dest'])
- {
- case '2':
- $sql = "SELECT * FROM item WHERE IDBRAND='" .$_GET['s']."' AND IDTYPE='group' order by DESCRIPTION";
- $res = mysql_query($sql) or exit('<p>Fehler beim Auslesen der Daten.</p>' . mysql_error());
- // Initialisierung des Datenarrays
- $data = array();
- // Füllen des Datenarrays
- while($data[] = mysql_fetch_assoc($res));
- array_pop($data);
- break;
- case '3':
- // Auslesen der Daten
- $sql = "SELECT i2i.IDPARITEM, i2i.IDITEM, i.IDITEM, i.DESCRIPTION FROM item2item i2i, item i WHERE i.IDITEM=i2i.IDITEM AND i2i.IDPARITEM='" .$_GET['s']."' ORDER BY DESCRIPTION";
- $res = mysql_query($sql) or exit('<p>Fehler beim Auslesen der Daten.</p>' . mysql_error());
- // Initialisierung des Datenarrays
- $data = array();
- // Füllen des Datenarrays
- while($data[] = mysql_fetch_assoc($res));
- array_pop($data);
- echo $_GET['s'];
- break;
- }
- $next = $_GET['dest']+1;
- echo 'select'.$_GET['dest'].'|| ';
- if($_GET['dest'] > 3)
- die('<input type="submit" value="Auswahl senden" >');
- echo '<select name="source'.$_GET['dest'].'" id="source'.$_GET['dest'].'" onChange="sendRequest('.$next.')">';
- echo '<option value=""></option>';
- foreach($data as $key) {
- echo '<option value="' . $key['IDITEM'] . '">' . $key['DESCRIPTION'] . '</option>';
- echo "\n";
- }
- echo '</select>';
- //Nächste Select Felder nullen
- $anzahl_der_select_felder = 3;
- for($i=$next; $i<=$anzahl_der_select_felder+1; $i++) {
- echo '||select'.$i.'|| ';
- }
- ?>[/code]
Ich wäre froh, wenn mir jemand helfen kann, damit ich dieses Modul zum laufen bekomme.
MfG
Andreas