2017-02-23 4 views
2

Ich habe zwei Dropdown-Menü, Land und Zustand für die Benutzerregistrierungsseite. Hier basiert der Staat auf dem Land.zweites Dropdown-Menü nicht ausgewählt

Wenn ich das Land auswähle, wird der auf diesem Land basierende Staat gefiltert.

Mein Problem ist beim Bearbeiten eines Benutzers.

Ich habe folgende jQuery-Code:

var u_id = <?= intval($_GET['id']);?>; 
     $.post('model/getUser.php',{id:u_id},function(data){ 
      if(data.success == true){ 
       $("#country").val(data.result.country); 
       dochange('state', data.result.country); 
      $("#state").val("+data.result.state+").attr('selected',true); 
      } 
     },'json'); 

Hier ist, was ich zu tun versuchen, ist einmal Land gewählt wird, dann wird es seinen Zustand filtern, indem Sie Funktion

function dochange(src, val) { 
    var req = Inint_AJAX(); 
    req.open("GET", "loc.php?data="+src+"&val="+val); 
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); 
    req.send(null); 
} 

loc.php

Es wird gefiltert, aber ich bin nicht in der Lage, den Status des Benutzers anzuzeigen.

Kann mir bitte jemand helfen, dieses Problem zu beheben.

Vielen Dank.

+0

verwenden ("#state"). val (data.result.state); ohne Attr ('ausgewählt', wahr); –

+0

@FerminPerdomo ja Ich habe das auch probiert, Meine Vermutung ist nach dochange Funktion $ ("# state"). Val (data.result.state); das passiert nicht – nas

+0

Weil nach der Seite lädt, wenn ich $ ("# stateId") eingeben. val ("01"); an der Konsole wird das Menü geändert. – nas

Antwort

1

Sie müssen einige Änderungen an der Funktion dochange tun

function dochange(src, val,cb) { 
    var req = Inint_AJAX(); 

    req.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      if(cb) 
       cb(this.responseText); 
     } 
    }; 
    req.open("GET", "loc.php?data="+src+"&val="+val); 
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); 
    req.send(null); 
} 

Dann können Sie diese

var u_id = <?= intval($_GET['id']);?>; 
    $.post('model/getUser.php',{id:u_id},function(data){ 
     if(data.success == true){ 
      $("#country").val(data.result.country); 
      dochange('state', data.result.country,function(data){ 
       $("#state").html(data); 
      }); 

     } 
    },'json'); 
verwenden

auch können Sie dieses so etwas wie $ versuchen

var u_id = <?= intval($_GET['id']);?>; 
    $.post('model/getUser.php',{id:u_id},function(data){ 
     if(data.success == true){ 
      $("#country").val(data.result.country); 
      dochange('state', data.result.country,function(data){ 
       $("#state").html(data); 
       $("#state").val('01'); 
      }); 

     } 
    },'json'); 
+0

Danke für die Mühe. Dein Code hat mein Problem nicht genau gelöst. Aber der Code gab mir einige Hinweise. :) Vielen Dank. – nas

+1

Sie sind herzlich willkommen und danken Ihnen, lassen Sie mich wissen, dass ich Ihnen zumindest ein wenig helfen –

0

ich meine Lösung erhalten, indem folgenden Code:

var u_id = <?= intval($_GET['id']);?>; 
     $.post('model/getUser.php',{id:u_id},function(data){ 
      if(data.success == true){ 
       if($("#country").val(data.result.country)){ 
        dochange('state', data.result.country); 
        $(window).on('load', function() { 
         $("#state").val('01'); 
        }); 
       } 
      } 
     },'json'); 

Ist die richtige Art und Weise und wie data.result.state passieren window.on ('load') Funktion.

Verwandte Themen