tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
312
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    phpameise phpameise ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Beiträge
    65
    Ich hab folgendes Problem. 2 Selectboxen sind abhängig miteinander verbunden (php, Ajax) Nun benötigt die 1. Select-Box ein 'onchange' Event, damit Ajax arbeiten kann. Ich möchte nun gerne das ganze auch durch ein click auslösen. Der 'click' auf einem Element auf meiner Seite steuert auch die Funktion an.
    Code :
    1
    
    Spry.$$("DIV#TabBevorzugteOrt").addEventListener("click", getCity1, false)
    Allerdings bekomme ich natürlich diesen Fehler.
    There was a problem while using XMLHTTP:
    Not Found
    Es fehlt ja im Gegensatz zum onchange die Übergabe der URL. Das Script:
    Code :
    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
    
    <script>
    function getXMLHTTP() { //fuction to return the xml http object
            var xmlhttp=false;  
            try{
                xmlhttp=new XMLHttpRequest();
            }
            catch(e)    {       
                try{            
                    xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){
                    try{
                    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                    catch(e1){
                        xmlhttp=false;
                    }
                }
            }
                
            return xmlhttp;
        }
        
        
        
        function getCity1(strURL) {     
            
            var req = getXMLHTTP();
            
            if (req) {
                
                req.onreadystatechange = function() {
                    if (req.readyState == 4) {
                        // only if "OK"
                        if (req.status == 200) {                        
                            document.getElementById('StadtAusland1div').innerHTML=req.responseText;                     
                        } else {
                            alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                        }
                    }               
                }           
                req.open("GET", strURL, true);
                req.send(null);
            }
                    
        }
    </script>
    Der Code von der Selectbox:
    PHP-Code:
    onchange="getCity1('findcity.php?country='+this.value)" 
    Die Variable für den Wert 'country' ist bei Seitenaufruf bereits vorhanden. Sie kann leer sein, dann brauche ich das 'onchange', sie kann einen Wert haben, dann soll das ganze per 'click' ausgeführt werden. Was muss ich tun, damit ich die URL entsprechend auch durch 'click' in die Funktion bekomme? Ich hoffe, es war nicht zu verwirrend.- Wenn Anfänger was ausdrücken wollen
     

  2. #2
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi phpameise,

    füg doch einfach dem HTML-Tag der Divs folgendes hinzu:
    HTML-Code:
    onclick="getCity1('findcity.php?country='+document.getElementById('selectBoxId').options[document.getElementById('selectBoxId').selectedIndex]"
    Dazu musst du natürlich auch dem select die id "selectBoxId" geben.

    Gruß
     

  3. #3
    phpameise phpameise ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Beiträge
    65
    Komme leider jetzt erst dazu. Danke für die Antwort. Leider verstehe ich nicht ganz. Meinst Du, ich sollte dem div Tag der 2. Selectbox den Code in folgender Form hinzufügen?
    PHP-Code:
    <td><div id="StadtAusland1div" onclick="getCity1('findcity.php?country='+document.getElementById('Ausland1')
    .options[document.getElementById('Ausland1').selectedIndex]">
                
    <select name="StadtAusland1" id="StadtAusland1">
    <option><?php echo $row_settings['StadtAusland1'];?></option>
    </select>    
    </div></td>
    Wenn ja, dann funktionierts nicht.
    Zur Erklärung - Selectbox1(Ausland1), Selectbox2(StadtAusland1). Durch die wahl eines Landes füllt sich die zweite Box mit möglichen Städten. Geht zurück auf Tutorial: Da mein Formular auf verschiedene "AccordionPanelTabs" aufgeteilt ist, dachte ich, dass ich die Funktion zur Füllung von Select-Box 2 durch ein Click-Event auf das AccordionPanelTab auslösen kann. Wie gesagt, die Funktion ansteuen durch öffnen des AccordeonPanels "TabBevorzugteOrte" geht schon:
    Code :
    1
    
    Spry.$$("DIV#TabBevorzugteOrt").addEventListener("click", getCity1, false)
    Nur die Übergabe der URL mit dem Wert der ersten Box nicht.
    Geändert von phpameise (16.09.11 um 12:50 Uhr)
     

  4. #4
    phpameise phpameise ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Beiträge
    65
    Die Anregung hat mich zu folgendem inspiriert. Die 2. Selectbox ist standardmäßig 'disabled' Hinter der Box habe ich einen 'ändern' Link bei dem folgendes passiert: 1. steuere ich eine Funktion an, die das Feld 'enabled' und 2. steure ich mein Ajax zum Füllen der Box an:
    PHP-Code:
    <a href="javascript:makeEnable();" onclick="getCity1('findcity.php?country='+document.getElementById('Ausland1').value)">ändern</a
    Das ist bestimmt deletantisch aber für den User verständlich und für mich mit meinen Kenntnissen optimal. Danke
     

Ähnliche Themen

  1. onchange Event
    Von creep3007 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 24.08.11, 23:22
  2. onchange event
    Von Ch im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 01.03.09, 19:33
  3. onChange 2 oder mehrere event
    Von mckani im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 10.10.05, 23:26
  4. Bei OnChange-Event Wert setzen
    Von ahykes im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 09.11.04, 11:32
  5. Antworten: 9
    Letzter Beitrag: 13.11.03, 14:14

Stichworte