tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
540
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Mik3e
    Mik3e Mik3e ist offline Mitglied Platin
    Registriert seit
    May 2005
    Beiträge
    732
    Hi,

    Es gibt Länder und dazugehörige Bundesländer. Der User soll in einer Selectbox ein Land wählen und in der darunterstehenden Selectbox sollen die zu diesem Land gehörigen Bundesländer angezeigt werden.

    Habe mir hierfür folgenden Thread als Vorlage genommen (der einwandfrei funktioniert):
    http://www.tutorials.de/forum/javasc...light=l%E4nder

    Nun ist die ganze Sache bei mir Leider etwas komplexer. Die Auswahllisten sehen in etwa so aus:

    PHP-Code:
    /* LÄNDER */
    <select>
    <
    option value="1">Österreich</option>
    <
    option value="2">Deutschland</option>
    </
    select>

    /* BUNDESLÄNDER */
    <select>
    <
    option value="bundeslandID1">BL AUT1</option>
    <
    option value="bundeslandID2">BL AUT2</option>
    <
    option value="bundeslandID3">BL GER1</option>
    <
    option value="bundeslandID4">BL GER2</option>
    </
    select
    Bis hierher ist es 1:1 das obige Beispiel.
    ABER:
    Die Daten sind in einer Datenbank gespeichert. Hier gibt es eine Relation zwischen Land und Bundesland (1:n Beziehung).

    Tabellen (zur besseren Vorstellung) - fk** = Fremdschlüssel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    LandID | LandName
    --------------------------
    1 | Österreich
    2 | Deutschland
     
    BundesLandID | fkLandID | BundeslandName
    ----------------------------------------------------------------
    1 | 1 | BL AUT 1
    2 | 1 | BL AUT 2
    3 | 2 | BL GER 1
    4 | 2 | BL GER 2

    Nun muss ich den Array der Bundesländer aus der DB aufbauen. Ist prinzipiell ja kein Problem und folgendermassen gelöst (in Anlehnung an den geposteten Thread):

    PHP-Code:
    ..............
    /* Array mit Bundesländern builden */
    var arrParts = new Array();

    <?PHP
    while($row $countryStatesInstalled->fetchRow(DB_FETCHMODE_ASSOC)):
        echo 
    'arrParts['.$row['fk_country_id'].'].push("'.$row['country_states_name'].'");';
    endwhile;
    ?>
    .........
    Ich dachte mir, dass ich die ID des Landes als Index für die einzelnen Array der bundesländer nütze und dann aufgrund der Auswahl des Landes den jeweiligen Bundesland-Array lade. Hierfür wollte ich die methode push() einsetzen.

    Output sieht dann ungefähr so aus (auszug):
    PHP-Code:
    ...................
    /* Array mit Bundesländern builden */
    var arrParts = new Array();
        
    arrParts[195].push("A Coruña");
    arrParts[204].push("Aargau");
    arrParts[223].push("Alabama");
    arrParts[223].push("Alaska");
    arrParts[195].push("Alava");
    arrParts[195].push("Albacete");
    arrParts[38].push("Alberta");
    arrParts[195].push("Alicante");
    ................. 
    So, und jetzt steh ich an...(Fragen):
    1. Bekomme ich permanent eine Laufzeitfehler. Liegt sicher daran, dass ich den Index der Arrays nicht korrekt anspreche.
    2. Weiß ich nicht, wie ich die ID des Bundeslandes in die Select-Box bekomme (als Value). Muss ich auch noch irgendwie in den Array packen (evtl. als Sub-Array!? -> arrParts[195].push(new Array("A Coruña", "1"))

    Hier nochmal der gesamte aktuelle Quellcode nachdem er von PHP vorbereitet wurde (zum Testen) - Lasst Euch Durch die Encoding-Fehler und die Länge nicht abschrecken. Kommt einzig von den vielen Daten :

    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <
    title>Untitled Document</title>
    <
    script type="text/javascript" language="javascript">
    // <![CDATA[
    /* Array mit Bundesländern bauen */
    var arrParts = new Array();
        
    arrParts[195].push("A Coruña");
    arrParts[204].push("Aargau");
    arrParts[223].push("Alabama");
    arrParts[223].push("Alaska");
    arrParts[195].push("Alava");
    arrParts[195].push("Albacete");
    arrParts[38].push("Alberta");
    arrParts[195].push("Alicante");
    arrParts[195].push("Almeria");
    arrParts[223].push("American Samoa");
    arrParts[204].push("Appenzell Ausserrhoden");
    arrParts[204].push("Appenzell Innerrhoden");
    arrParts[223].push("Arizona");
    arrParts[223].push("Arkansas");
    arrParts[223].push("Armed Forces Africa");
    arrParts[223].push("Armed Forces Americas");
    arrParts[223].push("Armed Forces Canada");
    arrParts[223].push("Armed Forces Europe");
    arrParts[223].push("Armed Forces Middle East");
    arrParts[223].push("Armed Forces Pacific");
    arrParts[195].push("Asturias");
    arrParts[195].push("Avila");
    arrParts[195].push("Badajoz");
    arrParts[81].push("Baden-Württemberg");
    arrParts[195].push("Baleares");
    arrParts[195].push("Barcelona");
    arrParts[204].push("Basel-Landschaft");
    arrParts[204].push("Basel-Stadt");
    arrParts[81].push("Bayern");
    arrParts[81].push("Berlin");
    arrParts[204].push("Bern");
    arrParts[81].push("Brandenburg");
    arrParts[81].push("Bremen");
    arrParts[38].push("British Columbia");
    arrParts[14].push("Burgenland");
    arrParts[195].push("Burgos");
    arrParts[195].push("Caceres");
    arrParts[195].push("Cadiz");
    arrParts[223].push("California");
    arrParts[195].push("Cantabria");
    arrParts[195].push("Castellon");
    arrParts[195].push("Ceuta");
    arrParts[195].push("Ciudad Real");
    arrParts[223].push("Colorado");
    arrParts[223].push("Connecticut");
    arrParts[195].push("Cordoba");
    arrParts[195].push("Cuenca");
    arrParts[223].push("Delaware");
    arrParts[223].push("District of Columbia");
    arrParts[223].push("Federated States Of Micronesia");
    arrParts[223].push("Florida");
    arrParts[204].push("Freiburg");
    arrParts[204].push("Genf");
    arrParts[223].push("Georgia");
    arrParts[195].push("Girona");
    arrParts[204].push("Glarus");
    arrParts[195].push("Granada");
    arrParts[204].push("Graubünden");
    arrParts[195].push("Guadalajara");
    arrParts[223].push("Guam");
    arrParts[195].push("Guipuzcoa");
    arrParts[81].push("Hamburg");
    arrParts[223].push("Hawaii");
    arrParts[81].push("Hessen");
    arrParts[195].push("Huelva");
    arrParts[195].push("Huesca");
    arrParts[223].push("Idaho");
    arrParts[223].push("Illinois");
    arrParts[223].push("Indiana");
    arrParts[223].push("Iowa");
    arrParts[195].push("Jaen");
    arrParts[204].push("Jura");
    arrParts[223].push("Kansas");
    arrParts[14].push("Kärnten");
    arrParts[223].push("Kentucky");
    arrParts[195].push("La Rioja");
    arrParts[195].push("Las Palmas");
    arrParts[195].push("Leon");
    arrParts[195].push("Lleida");
    arrParts[223].push("Louisiana");
    arrParts[195].push("Lugo");
    arrParts[204].push("Luzern");
    arrParts[195].push("Madrid");
    arrParts[223].push("Maine");
    arrParts[195].push("Malaga");
    arrParts[38].push("Manitoba");
    arrParts[223].push("Marshall Islands");
    arrParts[223].push("Maryland");
    arrParts[223].push("Massachusetts");
    arrParts[81].push("Mecklenburg-Vorpommern");
    arrParts[195].push("Melilla");
    arrParts[223].push("Michigan");
    arrParts[223].push("Minnesota");
    arrParts[223].push("Mississippi");
    arrParts[223].push("Missouri");
    arrParts[223].push("Montana");
    arrParts[195].push("Murcia");
    arrParts[195].push("Navarra");
    arrParts[223].push("Nebraska");
    arrParts[204].push("Neuenburg");
    arrParts[223].push("Nevada");
    arrParts[38].push("New Brunswick");
    arrParts[223].push("New Hampshire");
    arrParts[223].push("New Jersey");
    arrParts[223].push("New Mexico");
    arrParts[223].push("New York");
    arrParts[38].push("Newfoundland");
    arrParts[204].push("Nidwalden");
    arrParts[14].push("Niederösterreich");
    arrParts[81].push("Niedersachsen");
    arrParts[81].push("Nordrhein-Westfalen");
    arrParts[223].push("North Carolina");
    arrParts[223].push("North Dakota");
    arrParts[223].push("Northern Mariana Islands");
    arrParts[38].push("Northwest Territories");
    arrParts[38].push("Nova Scotia");
    arrParts[38].push("Nunavut");
    arrParts[14].push("Oberösterreich");
    arrParts[204].push("Obwalden");
    arrParts[223].push("Ohio");
    arrParts[223].push("Oklahoma");
    arrParts[38].push("Ontario");
    arrParts[223].push("Oregon");
    arrParts[195].push("Ourense");
    arrParts[223].push("Palau");
    arrParts[195].push("Palencia");
    arrParts[223].push("Pennsylvania");
    arrParts[195].push("Pontevedra");
    arrParts[38].push("Prince Edward Island");
    arrParts[223].push("Puerto Rico");
    arrParts[38].push("Quebec");
    arrParts[81].push("Rheinland-Pfalz");
    arrParts[223].push("Rhode Island");
    arrParts[81].push("Saarland");
    arrParts[81].push("Sachsen");
    arrParts[81].push("Sachsen-Anhalt");
    arrParts[195].push("Salamanca");
    arrParts[14].push("Salzburg");
    arrParts[195].push("Santa Cruz de Tenerife");
    arrParts[38].push("Saskatchewan");
    arrParts[204].push("Schaffhausen");
    arrParts[81].push("Schleswig-Holstein");
    arrParts[204].push("Schwyz");
    arrParts[195].push("Segovia");
    arrParts[195].push("Sevilla");
    arrParts[204].push("Solothurn");
    arrParts[195].push("Soria");
    arrParts[223].push("South Carolina");
    arrParts[223].push("South Dakota");
    arrParts[204].push("St. Gallen");
    arrParts[14].push("Steiermark");
    arrParts[195].push("Tarragona");
    arrParts[223].push("Tennessee");
    arrParts[195].push("Teruel");
    arrParts[204].push("Tessin");
    arrParts[223].push("Texas");
    arrParts[204].push("Thurgau");
    arrParts[81].push("Thüringen");
    arrParts[14].push("Tirol");
    arrParts[195].push("Toledo");
    arrParts[204].push("Uri");
    arrParts[223].push("Utah");
    arrParts[195].push("Valencia");
    arrParts[195].push("Valladolid");
    arrParts[223].push("Vermont");
    arrParts[223].push("Virgin Islands");
    arrParts[223].push("Virginia");
    arrParts[195].push("Vizcaya");
    arrParts[14].push("Voralberg");
    arrParts[204].push("Waadt");
    arrParts[204].push("Wallis");
    arrParts[223].push("Washington");
    arrParts[223].push("West Virginia");
    arrParts[14].push("Wien");
    arrParts[223].push("Wisconsin");
    arrParts[223].push("Wyoming");
    arrParts[38].push("Yukon Territory");
    arrParts[195].push("Zamora");
    arrParts[195].push("Zaragoza");
    arrParts[204].push("Zug");
    arrParts[204].push("Zürich");

    /* Einblenden der jeweiligen Bundesländer
    -------------------------------------------------------------*/
    function updateCountrySelect(objSel){
       
        
    // Objekt für zweite Select-Gruppe
        
    objSelNew document.getElementById("customerCountryStateID");
        
    // Optionen löschen
        
    objSelNew.length 0;

        
    // Falls kein Land gewählt wurde
        
    if(objSel.selectedIndex == 0){
          
    objSelNew.style.display "none";
        }else{
          
    objSelNew.style.display "inline";

          
    // Alle BL/Kantone durchlaufen
          
    for(i=0i<arrParts[objSel.selectedIndex].lengthi++){
            
    // Neue Option erstellen
            
    objOpt = new Option(arrParts[objSel.selectedIndex][i], arrParts[objSel.selectedIndex][i], falsefalse);
            
    // Neue Option in Select-Struktur einhängen (immer an letzte Stelle)
            
    objSelNew.options[objSelNew.length] = objOpt;
          }
        }
      }

    // ]]>
    </script>

    </head>

    <body>
    <!-- SelectBox mit Ländern -->
    <select name="customerCountryID" style="width:100%;" onchange="updateCountrySelect(this);">
    <option value="14">Österreich (Austria / AT)</option><option value="81">Deutschland (Germany / DE)</option><option value="204">Schweiz (Switzerland / CH)</option><option value="2">Shqipëria (Albania / AL)</option><option value="1">افغانستان (Afghanistan / AF)</option><option value="3">الجزائر (Algeria / DZ)</option><option value="4">American Samoa (American Samoa / AS)</option><option value="5">Andorra (Andorra / AD)</option><option value="6">Angola (Angola / AO)</option><option value="7">Anguilla (Anguilla / AI)</option><option value="8">Antarctica (Antarctica / AQ)</option><option value="9">Antigua and Barbuda (Antigua and Barbuda / AG)</option><option value="10">Argentina (Argentina / AR)</option><option value="11">Հայաստան (Armenia / AM)</option><option value="12">Aruba (Aruba / AW)</option><option value="13">Australia (Australia / AU)</option><option value="15">Azərbaycan (Azerbaijan / AZ)</option><option value="16">Bahamas (Bahamas / BS)</option><option value="17">البحرين (Bahrain / BH)</option><option value="18">বাংলাদেশ (Bangladesh / BD)</option><option value="19">Barbados (Barbados / BB)</option><option value="20">Беларусь (Belarus / BY)</option><option value="21">België (Belgium / BE)</option><option value="22">Belize (Belize / BZ)</option><option value="23">Bénin (Benin / BJ)</option><option value="24">Bermuda (Bermuda / BM)</option><option value="25">Druk Yul (Bhutan / BT)</option><option value="26">Bolivia (Bolivia / BO)</option><option value="27">Bosna i Hercegovina (Bosnia and Herzegowina / BA)</option><option value="28">Botswana (Botswana / BW)</option><option value="29">Bouvet Island (Bouvet Island / BV)</option><option value="30">Brazil (Brazil / BR)</option><option value="31">British Indian Ocean Territory (British Indian Ocean Territory / IO)</option><option value="32">Brunei Darussalam (Brunei Darussalam / BN)</option><option value="33">България (Bulgaria / BG)</option><option value="34">Burkina Faso (Burkina Faso / BF)</option><option value="35">Burundi (Burundi / BI)</option><option value="36">Kâmpŭchea (Cambodia / KH)</option><option value="37">Cameroon (Cameroon / CM)</option><option value="38">Canada (Canada / CA)</option><option value="39">Cabo Verde (Cape Verde / CV)</option><option value="40">Cayman Islands (Cayman Islands / KY)</option><option value="41">Central African Republic (Central African Republic / CF)</option><option value="42">جمهوريّة تشاد (Chad / TD)</option><option value="43">Chile (Chile / CL)</option><option value="44">中華人民共和國 (China / CN)</option><option value="45">Christmas Island (Christmas Island / CX)</option><option value="46">Cocos (Keeling) Islands (Cocos (Keeling) Islands / CC)</option><option value="47">Colombia (Colombia / CO)</option><option value="48">اتحاد القمر (Comoros / KM)</option><option value="49">Congo (Congo / CG)</option><option value="50">Cook Islands (Cook Islands / CK)</option><option value="51">Costa Rica (Costa Rica / CR)</option><option value="52">Cote D'Ivoire (Cote D'Ivoire / CI)</option><option value="53">Hrvatska (Croatia / HR)</option><option value="54">Cuba (Cuba / CU)</option><option value="55">Κυπριακή Δημοκρατία (Cyprus / CY)</option><option value="56">Česká republika (Czech Republic / CZ)</option><option value="57">Danmark (Denmark / DK)</option><option value="58">جيبوتي (Djibouti / DJ)</option><option value="59">Dominica (Dominica / DM)</option><option value="60">República Dominicana (Dominican Republic / DO)</option><option value="61">Timór-Leste (East Timor / TP)</option><option value="62">Ecuador (Ecuador / EC)</option><option value="63">مصر (Egypt / EG)</option><option value="64">El Salvador (El Salvador / SV)</option><option value="65">Equatorial Guinea (Equatorial Guinea / GQ)</option><option value="66">Ertra (Eritrea / ER)</option><option value="67">Eesti (Estonia / EE)</option><option value="68">Ityop'iya (Ethiopia / ET)</option><option value="69">Falkland Islands (Malvinas) (Falkland Islands (Malvinas) / FK)</option><option value="70">Faroe Islands (Faroe Islands / FO)</option><option value="71">Fiji Islands (Fiji Islands / FJ)</option><option value="72">Suomi (Finland / FI)</option><option value="73">France (France / FR)</option><option value="74">France, Metropolitan (France, Metropolitan / FX)</option><option value="75">French Guiana (French Guiana / GF)</option><option value="76">French Polynesia (French Polynesia / PF)</option><option value="77">French Southern Territories (French Southern Territories / TF)</option><option value="78">Gabon (Gabon / GA)</option><option value="79">Gambia (Gambia / GM)</option><option value="80">საქართველო (Georgia / GE)</option><option value="82">Ghana (Ghana / GH)</option><option value="83">Gibraltar (Gibraltar / GI)</option><option value="84">Ελλάδα (Greece / GR)</option><option value="85">Greenland (Greenland / GL)</option><option value="86">Grenada (Grenada / GD)</option><option value="87">Guadeloupe (Guadeloupe / GP)</option><option value="88">Guam (Guam / GU)</option><option value="89">Guatemala (Guatemala / GT)</option><option value="90">Guinea (Guinea / GN)</option><option value="91">Guiné-Bissau (Guinea-bissau / GW)</option><option value="92">Guyana (Guyana / GY)</option><option value="93">Haïti (Haiti / HT)</option><option value="94">Heard and Mc Donald Islands (Heard and Mc Donald Islands / HM)</option><option value="95">Honduras (Honduras / HN)</option><option value="96">Hong Kong (Hong Kong / HK)</option><option value="97">Magyar Köztársaság (Hungary / HU)</option><option value="98">Lýðveldið Ísland (Iceland / IS)</option><option value="99">भारत (India / IN)</option><option value="100">Indonesia (Indonesia / ID)</option><option value="101">ایران (Iran / IR)</option><option value="102">العراق (Iraq / IQ)</option><option value="103">Éire (Ireland / IE)</option><option value="104">מדינת ישראל (Israel / IL)</option><option value="105">Italia (Italy / IT)</option><option value="106">Jamaica (Jamaica / JM)</option><option value="107">日本 (Japan / JP)</option><option value="108">الأُرْدُن (Jordan / JO)</option><option value="109">Қазақстан (Kazakhstan / KZ)</option><option value="110">Kenya (Kenya / KE)</option><option value="111">Kiribati (Kiribati / KI)</option><option value="112">Korea (Democratic people's republic of) (Korea (Democratic people's republic of) / KP)</option><option value="113">Korea (Republic of) (Korea (Republic of) / KR)</option><option value="114">الكويت (Kuwait / KW)</option><option value="115">Кыргыз Республикасы (Kyrgyzstan / KG)</option><option value="116">Sathalanalat Paxathipatai Paxaxon Lao (Lao People's Democratic Republic / LA)</option><option value="117">Latvija (Latvia / LV)</option><option value="118">الجمهورية اللبنانية (Lebanon / LB)</option><option value="119">Lesotho (Lesotho / LS)</option><option value="120">Liberia (Liberia / LR)</option><option value="121">الجماهيرية العربية الليبية الشعبية الاشتراكية (Libyan Arab Jamahiriya / LY)</option><option value="122">Liechtenstein (Liechtenstein / LI)</option><option value="123">Lietuva (Lithuania / LT)</option><option value="124">Luxembourg (Luxembourg / LU)</option><option value="125">Macau (Macau / MO)</option><option value="126">Macedonia (Macedonia / MK)</option><option value="127">Madagasikara (Madagascar / MG)</option><option value="128">Malaŵi (Malawi / MW)</option><option value="129">Malaysia (Malaysia / MY)</option><option value="130">Rajjeyge Jumhuriyya (Maldives / MV)</option><option value="131">Mali (Mali / ML)</option><option value="132">Malta (Malta / MT)</option><option value="133">Marshall Islands (Marshall Islands / MH)</option><option value="134">Martinique (Martinique / MQ)</option><option value="135">الجمهورية الإسلامية الموريتانية (Mauritania / MR)</option><option value="136">Mauritius (Mauritius / MU)</option><option value="137">Mayotte (Mayotte / YT)</option><option value="138">México (Mexico / MX)</option><option value="139">Micronesia (Micronesia / FM)</option><option value="140">Moldova (Moldova / MD)</option><option value="141">Monaco (Monaco / MC)</option><option value="142">Монгол Улс (Mongolia / MN)</option><option value="143">Montserrat (Montserrat / MS)</option><option value="144">المملكة المغربية (Morocco / MA)</option><option value="145">Moçambique (Mozambique / MZ)</option><option value="146">Myanma Naingngan (Myanmar / MM)</option><option value="147">Namibia (Namibia / NA)</option><option value="148">Naoero (Nauru / NR)</option><option value="149">नेपाल (Nepal / NP)</option><option value="150">Nederland (Netherlands / NL)</option><option value="151">Netherlands Antilles (Netherlands Antilles / AN)</option><option value="152">New Caledonia (New Caledonia / NC)</option><option value="153">New Zealand (New Zealand / NZ)</option><option value="154">Nicaragua (Nicaragua / NI)</option><option value="155">Niger (Niger / NE)</option><option value="156">Nigeria (Nigeria / NG)</option><option value="157">Niue (Niue / NU)</option><option value="158">Norfolk Island (Norfolk Island / NF)</option><option value="159">Northern Mariana Islands (Northern Mariana Islands / MP)</option><option value="160">Norge (Norway / NO)</option><option value="161">سلطنة عُمان (Oman / OM)</option><option value="162">پاکستان (Pakistan / PK)</option><option value="163">Palau (Palau / PW)</option><option value="164">Panamá (Panama / PA)</option><option value="165">Papua New Guinea (Papua New Guinea / PG)</option><option value="166">Paraguay (Paraguay / PY)</option><option value="167">Perú (Peru / PE)</option><option value="168">Pilipinas (Philippines / PH)</option><option value="169">Pitcairn (Pitcairn / PN)</option><option value="170">Polska (Poland / PL)</option><option value="171">Portuguesa (Portugal / PT)</option><option value="172">Puerto Rico (Puerto Rico / PR)</option><option value="173">قطر (Qatar / QA)</option><option value="174">Reunion (Reunion / RE)</option><option value="175">România (Romania / RO)</option><option value="176">Россия (Russian Federation / RU)</option><option value="177">Ruanda (Ruanda / RW)</option><option value="178">Saint Kitts and Nevis (Saint Kitts and Nevis / KN)</option><option value="179">Saint Lucia (Saint Lucia / LC)</option><option value="180">Saint Vincent and the Grenadines (Saint Vincent and the Grenadines / VC)</option><option value="181">Samoa (Samoa / WS)</option><option value="182">San Marino (San Marino / SM)</option><option value="183">São Tomé e Príncipe (Sao Tome and Principe / ST)</option><option value="184">المملكة العربية السعودية (Saudi Arabia / SA)</option><option value="185">Sénégal (Senegal / SN)</option><option value="186">Seychelles (Seychelles / SC)</option><option value="187">Sierra Leone (Sierra Leone / SL)</option><option value="188">Singapura (Singapore / SG)</option><option value="189">Slovensko (Slovakia / SK)</option><option value="190">Slovenija (Slovenia / SI)</option><option value="191">Solomon Islands (Solomon Islands / SB)</option><option value="192">Soomaaliya (Somalia / SO)</option><option value="193">South Africa (South Africa / ZA)</option><option value="194">South Georgia and the South Sandwich Islands (South Georgia and the South Sandwich Islands / GS)</option><option value="195">España (Spain / ES)</option><option value="196">Sri Lanka (Sri Lanka / LK)</option><option value="197">St. Helena (St. Helena / SH)</option><option value="198">St. Pierre and Miquelon (St. Pierre and Miquelon / PM)</option><option value="199">جمهورية السودان (Sudan / SD)</option><option value="200">Suriname (Suriname / SR)</option><option value="201">Svalbard and Jan Mayen Islands (Svalbard and Jan Mayen Islands / SJ)</option><option value="202">Swaziland (Swaziland / SZ)</option><option value="203">Sverige (Sweden / SE)</option><option value="205">الجمهورية العربية السورية (Syrian Arab Republic / SY)</option><option value="206">Taiwan (Taiwan / TW)</option><option value="207">Тоҷикистон (Tajikistan / TJ)</option><option value="208">Tanzania (United Republic of) (Tanzania (United Republic of) / TZ)</option><option value="209">ราชอาณาจักรไทย (Thailand / TH)</option><option value="210">Togolaise (Togo / TG)</option><option value="211">Tokelau (Tokelau / TK)</option><option value="212">Tonga (Tonga / TO)</option><option value="213">Trinidad and Tobago (Trinidad and Tobago / TT)</option><option value="214">الجمهورية التونسية (Tunisia / TN)</option><option value="215">Türkiye (Turkey / TR)</option><option value="216">Türkmenistan (Turkmenistan / TM)</option><option value="217">Turks and Caicos Islands (Turks and Caicos Islands / TC)</option><option value="219">Uganda (Uganda / UG)</option><option value="218">Tuvalu (Tuvalu / TV)</option><option value="220">Україна (Ukraine / UA)</option><option value="221">الإمارات العربيّة المتّحدة (United Arab Emirates / AE)</option><option value="222">United Kingdom (United Kingdom / GB)</option><option value="223">United States (United States / US)</option><option value="224">United States Minor Outlying Islands (United States Minor Outlying Islands / UM)</option><option value="225">Uruguay (Uruguay / UY)</option><option value="226">O‘zbekiston (Uzbekistan / UZ)</option><option value="227">Vanuatu (Vanuatu / VU)</option><option value="228">Vaticanae (Vatican City State (Holy See) / VA)</option><option value="229">Venezuela (Venezuela / VE)</option><option value="230">Việt Nam (Viet Nam / VN)</option><option value="231">Virgin Islands (British) (Virgin Islands (British) / VG)</option><option value="232">Virgin Islands (U.S.) (Virgin Islands (U.S.) / VI)</option><option value="233">Wallis and Futuna Islands (Wallis and Futuna Islands / WF)</option><option value="234">الجمهورية العربية الصحراوية الديمقراطية (Western Sahara / EH)</option><option value="235">Yemen (Yemen / YE)</option><option value="236">Yugoslavia (Yugoslavia / YU)</option><option value="237">Zaire (Zaire / ZR)</option><option value="238">Zambia (Zambia / ZM)</option><option value="239">Zimbabwe (Zimbabwe / ZW)</option></select>

    <!-- SelectBox mit Bundesländern -->
    <select name="customerCountryStateID" id="customerCountryStateID" style="width:100%;"></select>
    </body>
    </html> 
    Wäre Euch dankbar, wenn mir irgendwer einen Tipp geben könnte...
    Danke & Ciao,
    Mike
     

  2. #2
    macropode macropode ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    167
    Du könntest die jeweilige id in einem hiddenfeld speichern und dann beim neuaufruf über $_POST['hiddenfeldname'] darauf zugreifen. bei nur einer id ist das der einfachste weg.

    Ich hoffe ich habe dein anliegen richtig verstanden!
     

  3. #3
    Avatar von Mik3e
    Mik3e Mik3e ist offline Mitglied Platin
    Registriert seit
    May 2005
    Beiträge
    732
    Nö, hast Du nicht
    Es geht mir nicht darum, wie ich an den Array nach dem Post rankomme (das ist das Kleinste Problem und wäre ansonsten auch im PHP Forum gepostet).
    Ich brauche eine JS-Funktion, die mir die Anzeige der Bundesländer abhängig vom gewählten Land korrekt macht...

    Danke trotzdem & Ciao,
    Mike
     

  4. #4
    Ceppi Ceppi ist offline Mitglied Gold
    Registriert seit
    Jul 2003
    Ort
    BS (Niedersachsen)
    Beiträge
    181
    Hallo Mike,

    noch habe ich es nicht geschafft, dein Beispiel zum Laufen zu bringen, aber trotzdem einige Anmerkungen:
    Wenn du den Wert von selectedIndex eines Select-Elements prüfst, lautet der Rückgabewert für keine Auswahl -1. Oder soll es unsichtbar werden, wenn man die erste Option wählt
    Und wenn du nachher auf deinen Array arrParts zugreifen möchtest: Den Schlüssel des richtigen Array-Elements (Staaten-Id) erhälst du über die Eigenschaft value der ausgewählten Option, selectedIndex ist ja nur die Position...
    Ich fürchte, man kommt auch nicht darum herum, die Arrays vorher zu initialisieren, etwa so:
    Code javascript:
    1
    2
    
    arrParts[195] = new Array();
    arrParts[195] = arrParts[195].push(new Array("A Coruña", 1));

    Wenn man den Array arrParts so aufbaut wie von mir vorgeschlagen, sollte es jetzt funktionieren...
    Mit der Id der Bundesländer/Regionen würde ich das so versuchen, wie du selbst es vorgeschlagen hast.

    Code javascript:
    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
    
    function updateCountrySelect(objSel){
       
        // Objekt für zweite Select-Gruppe
        objSelNew = document.getElementById("customerCountryStateID");
        // Optionen löschen
        objSelNew.length = 0;
     
        // Falls kein Land gewählt wurde
            
        if(objSel.selectedIndex == -1){
          objSelNew.style.display = "none";
     
        }else{
          objSelNew.style.display = "inline";
          
                stateId = objSel.options[objSel.selectedIndex].value;
                
          // Alle BL/Kantone durchlaufen
          for(i=0; i<arrParts[stateId].length; i++){
            // Neue Option erstellen
            objOpt = new Option(arrParts[stateId][i], arrParts[stateId][i], false, false);
            // Neue Option in Select-Struktur einhängen (immer an letzte Stelle)
            objSelNew.options[objSelNew.length] = objOpt;
          }
        }
      }
     

  5. #5
    Avatar von Mik3e
    Mik3e Mik3e ist offline Mitglied Platin
    Registriert seit
    May 2005
    Beiträge
    732
    Hi,

    Danke für die Unterstützung, aber ich kriegs nicht gebacken...
    Mein Problem ist, dass ich in der JS Funktion nicht auf den Array zugreifen kann.
    Hier ein Auszug um das Problem zu schildern:
    PHP-Code:
    // Bundesland-Array bilden (nur ein Bundesland für Beispiel)
    var arrParts = new Array();
    arrParts[195] = new Array();
    arrParts[195] = arrParts[195].push(new Array("A Coruña",130));
    arrParts[195] = arrParts[195].push(new Array("Bundesland2",134));
    arrParts[195] = arrParts[195].push(new Array("Bundesland3",138));

    // Auszug aus der Funktion um auf den Array zuzugreifen
    function updateCountrySelect(objSel){
        var 
    stateID=0;
        
    stateID objSel.options[objSel.selectedIndex].value;      
        
    alert('stateid:'+stateID); // -> 195 -> Passt
        
    alert('Array Länge: '+arrParts[195].length); // ->FEHLER: UNDEFINED

    Und das kapier ich nicht... Müsste doch nach Adam Riese in dem Beispiel 3 liefern..
    Wenn ich das Problem gelöst habe, müsste es eigentlich passen (die for-schleife zum aufbau der Selectbox ist dann nur noch Kür)

    Hast Du noch eine Idee?
    Ciao,
    Mike
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du darfst nicht in arrParts[xxx] das Ergebnis von push() speichern... da überschreibst du den Array(push() gibt nicht den resultierenden Array zurück)
    .....also so:
    Code :
    1
    2
    3
    4
    5
    
    var arrParts = new Array();
    arrParts[195] = new Array();
    arrParts[195].push(new Array("A Coruña",130));
    arrParts[195].push(new Array("Bundesland2",134));
    arrParts[195].push(new Array("Bundesland3",138));
     

Ähnliche Themen

  1. DataGridViewComboBox abhängig voneinander
    Von Adan0s im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 06.08.09, 13:25
  2. Antworten: 1
    Letzter Beitrag: 04.11.08, 00:34
  3. mehrere JComboBoxen die voneinander abhängig sind
    Von Nikolaj im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 06.05.08, 09:48
  4. 2 Selectfelder abhängig voneinander
    Von piti66 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 14.12.06, 09:10
  5. 2 Inputs abhängig voneinander machen
    Von Natheedo im Forum PHP
    Antworten: 0
    Letzter Beitrag: 02.02.06, 23:15