Ajax Dropdown Menü Problem.

XardasDark

Grünschnabel
Hallo,

ich habe mir ein Dropdown Menü rundergeladen.

Es sollen zuerst alle Bundesländer angezeigt werden, danach von dem BL die PLZ Gebiete, dann wieviele Mitarbeiter man braucht und dann in welcher Branche.

Mit 2 Boxen funktioniert es einwandfrei mache ich aber 3 oder mehrere tut er mir die Mitarbeiteranzahl und die Branchen falsch anzeigen. Sagen wir mal das Bundesland ist Hessen das PLZ Gebiet ist 64405 und dann sollte eig. z.B. Mitarbeiteranzahl 1,2,3,4,5 erscheinen. Es erscheint aber nur 2,3,4,5 und wenn ich dann z.B die 2 ausgewählt habe soll z.B bei Branchen Ärzte, Elektro erscheinen. Es erscheint aber z.B Verkauf, Lager. Verkauf und Lager soll aber erst erscheinen wenn man bei der Mitarbeiteranzahl 3 drückt.

Einfach ausgedrückt: Er überspringt seltsamerweiße die richtige Auswahl.

Hier sind die Codes:

state.php
PHP:
<?
     //set IE read from page only not read from cache
     header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
     header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
     header ("Cache-Control: no-cache, must-revalidate");
     header ("Pragma: no-cache");
     
     header("content-type: application/x-javascript; charset=tis-620");
     
     $data=$_GET['data'];
     $val=$_GET['val'];
     
     //set database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "lead_vali";
mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");  
     
     if ($data=='states') {  // first dropdown
          echo "<select name='states' onChange=\"dochange('cities', this.value)\">\n";
          echo "<option value='0'>==== choose state ====</option>\n";
          $result=mysql_db_query($dbname,"select `id`, `state` FROM states ORDER BY `state`");
          while(list($id, $name)=mysql_fetch_array($result)){
               echo "<option value=\"$id\" >$name</option> \n" ;
          }
     } else if ($data=='cities') { // second dropdown
          echo "<select name='cities' onChange=\"dochange('mitarbeiter', this.value)\">\n";
          echo "<option value='0'>====choose cities ====</option>\n";                           
          $result=mysql_db_query($dbname,"SELECT `id`, `city`, `cities_id` FROM cities WHERE `state_id` = '$val' ORDER BY `city` ");
          while(list($id, $name)=mysql_fetch_array($result)){       
               echo "<option value=\"$id\" >$name</option> \n" ;
          }
     } else if ($data=='mitarbeiter') { // third dropdown
          echo "<select name='mitarbeiter' onChange=\"dochange('branche', this.value)\">\n";
          echo "<option value='0'>====choose Mitarbeiter ====</option>\n";                           
          $result=mysql_db_query($dbname,"SELECT `id`, `anzahl` FROM mitarbeiter WHERE `cities_id` = '$val' ORDER BY `anzahl` ");
          while(list($id, $name)=mysql_fetch_array($result)){       
               echo "<option value=\"$id\" >$name</option> \n" ;
		  }
     } else if ($data=='branche') { // fourth dropdown
          echo "<select name='branche' >\n";
          echo "<option value='0'>====choose Branche ====</option>\n";                           
          $result=mysql_db_query($dbname,"SELECT `id`, `branche` FROM branche WHERE `mitarbeiter_id` = '$val' ORDER BY `branche` ");
          while(list($id, $name)=mysql_fetch_array($result)){       
               echo "<option value=\"$id\" >$name</option> \n" ;
			   
     } }
     echo "</select>\n";  
?>

state_dropdown.php
PHP:
<?     
     echo "<form name=sel>\n";
     echo "States : <font id=states><select>\n";
     echo "<option value='0'>============</option> \n" ;
     echo "</select></font>\n";
     
     echo "Cities : <font id=cities><select>\n";
     echo "<option value='0'>=== none ===</option> \n" ;
     echo "</select></font>\n";
	 
	 echo "Mitarbeiter Anzahl : <font id=mitarbeiter><select>\n";
     echo "<option value='0'>=== none ===</option> \n" ;
     echo "</select></font>\n";
	 
	 echo "Branche : <font id=branche><select>\n";
     echo "<option value='0'>=== none ===</option> \n" ;
     echo "</select></font>\n";
?>

<script language=Javascript>
function Inint_AJAX() {
   try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
   try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
   alert("XMLHttpRequest not supported");
   return null;
};

function dochange(src, val) {
     var req = Inint_AJAX();
     req.onreadystatechange = function () { 
          if (req.readyState==4) {
               if (req.status==200) {
                    document.getElementById(src).innerHTML=req.responseText; //retuen value
               } 
          }
     };
     req.open("GET", "state.php?data="+src+"&val="+val); //make connection
     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
     req.send(null); //send value
}

window.onLoad=dochange('states', -1);         // value in first dropdown

</script>

SQL
Code:
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 10. Oktober 2011 um 16:21
-- Server Version: 5.5.8
-- PHP-Version: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `lead_vali`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `branche`
--

CREATE TABLE IF NOT EXISTS `branche` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `branche` varchar(255) COLLATE utf8mb4_bin NOT NULL,
  `mitarbeiter_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=6 ;

--
-- Daten für Tabelle `branche`
--

INSERT INTO `branche` (`id`, `branche`, `mitarbeiter_id`) VALUES
(1, 'Leer', 0),
(2, 'Sport', 1),
(3, 'Kunst', 3),
(4, 'Militär', 2),
(5, 'Handwerk', 3);

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `cities`
--

CREATE TABLE IF NOT EXISTS `cities` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `state_id` int(11) NOT NULL DEFAULT '0',
  `city` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `cities_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=174 ;

--
-- Daten für Tabelle `cities`
--

INSERT INTO `cities` (`id`, `state_id`, `city`, `cities_id`) VALUES
(1, 0, 'Leer', 0),
(2, 7, '12345', 1),
(3, 2, '33245', 1),
(4, 3, '23456', 3),
(5, 4, '43211', 2),
(6, 5, '22211', 4),
(7, 1, '54321', 1);

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `mitarbeiter`
--

CREATE TABLE IF NOT EXISTS `mitarbeiter` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `anzahl` int(11) NOT NULL DEFAULT '0',
  `cities_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=7 ;

--
-- Daten für Tabelle `mitarbeiter`
--

INSERT INTO `mitarbeiter` (`id`, `anzahl`, `cities_id`) VALUES
(1, 0, 0),
(2, 1, 1),
(3, 2, 2),
(4, 3, 3),
(5, 4, 4),
(6, 5, 5);

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `states`
--

CREATE TABLE IF NOT EXISTS `states` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `state` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `abb` char(2) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=52 ;

--
-- Daten für Tabelle `states`
--

INSERT INTO `states` (`id`, `state`, `abb`) VALUES
(1, 'Baden-Württemberg', 'BW'),
(2, 'Bayern', 'BA'),
(3, 'Berlin', 'BE'),
(4, 'Brandenburg', 'BR'),
(5, 'Bremen', 'BM'),
(6, 'Hamburg', 'HA'),
(7, 'Hessen', 'HE'),
(8, 'Mecklenburg-Vorpommern', 'MV'),
(9, 'Niedersachen', 'NS'),
(10, 'Nordrhein-Westfalen', 'NW'),
(11, 'Rheinland-Pfalz', 'RP'),
(12, 'Saarland', 'SA'),
(13, 'Sachsen', 'SC'),
(14, 'Sachsen-Anhalt', 'SA'),
(15, 'Schleswig-Holstein', 'SH'),
(16, 'Thüringen', 'TH');

Über hilfe wäre ich wircklich sehr dankbar.
Ich quäle mich schon seit Stunden damit rum.

Habe sogar schon nach andere Dropdownmenüs gesucht aber nichts gefunden.

MfG XardasDark
 

Neue Beiträge

Zurück