Zle działające selecty

0

Mam problem z mapka na stronie działa tylko pod firefoxem natomiast źle pod ie oraz chrome ma ktoś pomysł czemu?
Mam na myśli selecty źle działają, po wyborze państwa czasem nie moge wybrać miasta nie wiem czemu;/

oto mój skrypt:

 <script type="text/javascript">
  $(document).ready(function(){
 // $("#city").attr("disabled","false");
  
 $("#countries").click(function(){
            $("#city").attr("disabled",false);
        });
 
  });
    $('#countries').change(function(){

        var sel = $(this).val();
        $('select[name="city"] option').hide();
        if(sel != "00"){
           $('option[data-custom-type="'+sel+'"]').show();
        }
        else {
            $('select[name="city"] option').show();
        }
        
        $('select[name="city"]')[0].selectedIndex = 0; 
    });
 </script> 

i strona http://ratujzycie.eu/aed-map/

Jak ktoś ma jakiś pomysł to prosze o radę. Bo nie mogę go rozwiązać:(

0

Używanie hide i show na option to trochę szaleństwo ;)

Zrób sobie tak:

  • ukryty select (nawet poza formą), w którym masz wszystkie opcje tak jak teraz
  • select właściwy, do którego kopiuj z tamtego ukrytego selecta wszystkie opcje w momencie zmiany kraju
0

Mógłbyś troszeczke jaśniej bo niezbyt kumam jak to zaprogramować. Z góry ogromne dzięki za pomoc:)

0

http://jsbin.com/ANEjUxe/3/

nie używałem Twoich nazw zmiennych ani nic, dostosuj sobie.

0

dzieki, ale dalej nie działa jak powinno. Zobacz ratujzycie.eu

  1. Czasami łapie czasami nie mam na mysli city, że czasami pokazuje niepoprawne wartości.
  2. Muszę dać name bo potem tworze tabelkę i bez użycia name nie utworzy mi się.
  3. Po kliknięciu w panstwo i miasto i pokaż, pokazuje mi się mapka ale miasto zmienia sie na wszystkie a nie takie jakie wybrałem.
    4 Pod IE w ogóle pokazuje błednie:(

Masz jakiś pomysł jak temu zaradzić poniżej cały skrypt tej strony:
On był przerabiany z csv więc zostaly jeszcze niektóre komentarze.

 

<?php /* Template Name: Mapa Szablon */ ?>

<?php

 
get_header(); 
if(is_page()){

  
       
                            <?php
                                
                                //inicjowanie zmiennych
                                $cityToLoc = array();
                                $result2 = array();
                                mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
                                mysql_select_db("xxx") or die(mysql_error());
                                //inicjowanie zmiennych
                                $cityToLoc = array();
                                $result2 = array();
                                //wczytywanie z pliku csv
                                $result=mysql_query("SELECT * FROM date_google_mp");
                                
                                $db_rows=array();
                                while($row = mysql_fetch_array($result)){
                                    $db_rows[]=$row;
                                }
                                
                                 
                                
                                for($i=0;$i<sizeof($db_rows);$i++){
                                    //       $line=explode('|',$f[$i]);
                                    $city[] = $db_rows[$i][2];//$line[0];                //wrzucam sobie miasto        
                                    $country[] = $db_rows[$i][1];//trim(preg_replace('/\s+/', ' ', $line[6]));
                                    $temp=array();
                                    $temp[1]=$db_rows[$i][3];
                                    $temp[2]=$db_rows[$i][4];
                                    $temp[3]=$db_rows[$i][5];
                                    $temp[4]=$db_rows[$i][6];
                                    $temp[5]=$db_rows[$i][7];
                                    
                                    $cityToLoc[$db_rows[$i][2]][] = $temp;
                                }
                                
                                
                                $city = array_unique($city, SORT_REGULAR);
                                //echo '<prE>';print_r($cityToLoc);echo '</pre>';        
                                $result2 = array_values($city);
                                
                                
                                $city_choice = $_POST['city'];
                                
                                echo '<form action="#" method="post" class="map-form">';
                                
                                      
                                        echo '<select id="countries" name="countries" >';
                                        
                                    
                                         
                                        
                                            
                                            echo '  <option value="00"   >'; _e('<!--:pl-->Wszystkie<!--:--><!--:en-->All<!--:-->'); echo '</option>';
                                            echo '    <option value="Anglia" '.((isset($_POST['countries']) && $_POST['countries']== 'Anglia') ? 'selected="selected"' : '').'>'; _e('<!--:en-->England<!--:--><!--:pl-->Anglia<!--:-->'); echo '</option>';
                                            echo '    <option value="Austria" '.((isset($_POST['countries']) && $_POST['countries']== 'Austria') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Austria<!--:--><!--:pl-->Austria<!--:-->'); echo '</option>';
                                            echo '    <option value="Belgia" '.((isset($_POST['countries']) && $_POST['countries']== 'Belgia') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Belgium<!--:--><!--:pl-->Belgia<!--:-->'); echo '</option>';
                                            echo '    <option value="Grecja" '.((isset($_POST['countries']) && $_POST['countries']== 'Grecja') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Grecce<!--:--><!--:pl-->Grecja<!--:-->'); echo '</option>';
                                            echo '    <option value="Niemcy" '.((isset($_POST['countries']) && $_POST['countries']== 'Niemcy') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Germany<!--:--><!--:pl-->Niemcy<!--:-->'); echo '</option>';
                                            echo '    <option value="Polska" '.((isset($_POST['countries']) && $_POST['countries']== 'Polska') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Poland<!--:--><!--:pl-->Polska<!--:-->'); echo '</option>';
                                            echo '    <option value="Serbia" '.((isset($_POST['countries']) && $_POST['countries']== 'Serbia') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Serbjie<!--:--><!--:pl-->Serbia<!--:-->'); echo '</option>';
                                            echo '    <option value="Wegry" '.((isset($_POST['countries']) && $_POST['countries']== 'Wegry') ? 'selected="selected"' : '').'>'; _e('<!--:en-->Hungary<!--:--><!--:pl-->Wegry<!--:-->'); echo '</option>';
                                            
                                        echo '    </select> ';
                                    
                                $row = 1;
                                $storedcities = array();
                                
                                //if (($handle = fopen("aed_new_data.csv", "r")) !== FALSE) {
                                
                                    echo '<select name="city" id="city">'; 
                                    echo '<option value="which_city">'; _e('<!--:pl-->- wybierz miejscowość -<!--:--><!--:en-->- choose place -<!--:-->'); echo '</option>'; 
                                    //while (($data = fgetcsv($handle, 1000, "|")) !== FALSE) {
                                        for($i=0;$i<sizeof($db_rows);$i++){
                                            //echo '<pre>';print_r($db_rows[$i]);echo '</pre>';
                                        if(!in_array($db_rows[$i][2], $storedcities)){
                                        $selected = ($db_rows[$i][2] == $city_choice) ? 'selected="selected"' : '';
                                        echo "<option value=\"".$db_rows[$i][2]."\" data-custom-type=\"".$db_rows[$i][1]."\" {$selected}>".$db_rows[$i][2]."</option>\n";
                                        
                                        //$row++;
                                        
                                        //for ($c=0; $c < $num; $c++) {
                                        //    echo $data[$c] . "<br />\n";     /*$line_of_text[0] == $city && */
                                        //}
                                        
                                        $storedcities[] = $db_rows[$i][2];
                                        }
                                    }
                                    
                                    
                                    echo '</select>';
                                    
                                    
                                    echo '<select name="city1" id="city1">'; 
                                    echo '</select>';
                                    
                                //}    
                                    /*
                                    echo '<select name="city">'; 
                                    echo '<option value="which_city">'; _e('<!--:pl-->- wybierz miejscowo�� -<!--:--><!--:en-->- choose place -<!--:-->'); echo '</option>'; 
                                    for($i = 0; $i < count($result2); $i++){
                                                   $selected = ($result2[$i] == $city_choice) ? 'selected="selected"' : '';
                                                   echo "<option value=\"{$result2[$i]}\" data-custom-type=\"{$result3[$i]}\" {$selected}>{$result2[$i]}</option>\n";
                                             }
                                    echo '</select>'; */
                                    
                                    echo '<input  id="pokaz" type="submit" value="'; _e('<!--:pl-->Pokaż<!--:--><!--:en-->Show<!--:-->'); echo '" name="go" />';
                                echo '</form>';
                                
                                //echo "city = ".$_POST['city'];
                                //kod tabeli
                                if (isset($_POST['city1']) && $_POST['city1'] != 'which_city'){
                                $miasto = $_POST['city1'];
                                    echo '<div style="overflow:scroll;height:325px;width:400px;overflow:auto">';
                                    echo '<table class="aed-list" cellspacing="0">';
                                    echo '<tr>
                                            <td width=150px ><b>'; _e('<!--:pl-->Ulica<!--:--><!--:en-->Street<!--:-->'); echo '</b></td>
                                            <td width=100px><b>'; _e('<!--:pl-->Lokalizacja<!--:--><!--:en-->Location<!--:-->'); echo '</b></td>
                                            <td width=100px><b>'; _e('<!--:pl-->Uwagi<!--:--><!--:en-->Notes<!--:-->'); echo '</b></td>
                                          </tr>';
                                    for ($i = 0; $i < count($cityToLoc[$miasto]); $i++){
                                        echo '<tr>';
                                            echo '<td>' . $cityToLoc[$miasto][$i][1] . '</td>';
                                            echo '<td>' . $cityToLoc[$miasto][$i][2] . '</td>';
                                            if (is_numeric(trim($cityToLoc[$miasto][$i][3]))){
                                                echo '<td> </td>';
                                            }
                                            else{
                                                echo '<td>' . $cityToLoc[$miasto][$i][3] . '</td>';
                                            }
                                        echo '</tr>';
                                    }
                                    echo '</table>';    
                                    echo '</div>';
                                }


                            //kod mapki
                            if (isset($_POST['city1']) && $_POST['city1'] != 'which_city'){
                                echo '<script type="text/javascript">is_city = true;</script>';
                            }
                            echo '
                            <script type="text/javascript">
                                function initAddresses(){';
                                
                                    for ($i = 0; $i < count($cityToLoc[$miasto]); $i++){
                                        echo "addresses.push(\"".trim($cityToLoc[$miasto][$i][1]).", ".trim($miasto)."\");";
                                        echo 'infos.push("'.str_replace("\"","*",trim($cityToLoc[$miasto][$i][2])).'");';
                                        
                                        //print_r($cityToLoc[$miasto]);
                                        
                                        /*if (is_numeric(trim($cityToLoc[$miasto][$i][3]))){
                                            echo '
                                                var xy = new google.maps.LatLng('.trim($cityToLoc[$miasto][$i][3]).', '.trim($cityToLoc[$miasto][$i][4]).');
                                                coord.push(xy);';
                                        }
                                        else if (is_numeric(trim($cityToLoc[$miasto][$i][4]))){
                                            echo '
                                                var xy = new google.maps.LatLng('.trim($cityToLoc[$miasto][$i][4]).', '.trim($cityToLoc[$miasto][$i][5]).');
                                                coord.push(xy);';
                                                
                                                
                                        */
                                        if($cityToLoc[$miasto][$i][4]){
                                            echo '
                                                var xy = new google.maps.LatLng('.trim($cityToLoc[$miasto][$i][5]).', '.trim($cityToLoc[$miasto][$i][4]).');
                                                coord.push(xy);';
                                                    
                                        }
                                        else {
                                            echo 'coord.push(null);';
                                        }
                                    }
                              echo '
                              }
                                function codeAddress(loc, inf) {
                                    var ind = fetchAddressIndex(loc);
                                    if (!coord[ind]){
                                        geocoder.geocode( { \'address\': loc}, function(results, status) {
                                            if (status == google.maps.GeocoderStatus.OK) {
                                                //map.setCenter(results[0].geometry.location);
                                                addMarker(results[0].geometry.location, loc + "\n" + inf);
                                                succ_num++;
                                                coord[ind] = results[0].geometry.location;
                                            } else {
                                                //alert("Geocode was not successful for the following reason: " + status + "for local = " + loc);
                                            }
                                            //alert("codeAddresses() coord = "+coord);
                                        });
                                    }
                                    else{
                                        //alert("skorzystalem z podanych wspolrzednych");
                                        addMarker(coord[ind], loc + "\n" + inf);
                                        succ_num++;
                                    }
                            }
                            </script>';
                      ?>


     
 

 

 <script type="text/javascript">
 var um = $('#city');
var miasto = $('#city1');
var kr = $('#countries');

miasto.html(um.html());

kr.change(function(){
  var val = $(this).val();
  if (val) {
    var new_html = '';
    um.find('option[data-custom-type="'+val+'"]').each(function(){
      new_html += this.outerHTML;
    });
    miasto.html(new_html);
  }
  else {
    miasto.html(um.html());
  }
});
 
 
 </script>
 

0

nie interesuje mnie Twój php-burdel, wrzuć tylko sam wygenerowany HTML

1 użytkowników online, w tym zalogowanych: 0, gości: 1