2010-08-20 43 views
0

語言:PHP,JQuery的,MySQL的依賴於PHP/jQuery的組合框之間

的問題是 「簡單」,我有PHP和jquerys三重依賴,代碼的偉大工程,插入新信息,但現在我想進行更新,所以我需要先加載當前的信息,但我不知道如何添加代碼的某些部分,如果在投票之前需要更多的部件,請問我請放下。

代碼是這樣的:

 <tr> 
     <td class="main"><?php echo ENTRY_COUNTRY; ?></td> 
     <td class="main"> 
        <select id="country" name="country"> 
         <option value="0">Select One...</option> 
        </select> 
      </td> 
     </tr> 
     <tr> 
     <td class="main"><?php echo ENTRY_STATE; ?></td> 
     <td class="main"> 
       <select id="state" name="state"> 
        <option value="0">Select One...</option> 
       </select> 
     </td> 
     </tr> 
      <tr> 
     <td class="main"><?php echo ENTRY_CITY; ?></td> 
     <td class="main"> 
       <select id="city" name="city"> 
        <option value="0">Select One...</option> 
       </select> 
     </td> 
     </tr> 

三是從MySQL中的數據庫加載,通過操作,如:

<script type="text/javascript"> 
$(document).ready(function(){ 
    cargar_paises(); 
    $("#country").change(function(){dependencia_estado();}); 
    $("#state").change(function(){dependencia_ciudad();}); 
    $("#city").change(function(){dependencia_zip();}); 
    $("#state").attr("disabled",true); 
    $("#city").attr("disabled",true); 
}); 

function cargar_paises() 
{ 
    $.get("scripts/cargar-paises.php", function(resultado){ 
     if(resultado == false) 
     { 
      alert("Error"); 
     } 
     else 
     { 
      $('#country').append(resultado);    
     } 
    }); 
} 
function dependencia_estado() 
{ 
    var code = $("#country").val(); 
    $.get("scripts/dependencia-estado.php", { code: code }, 
     function(resultado) 
     { 
      if(resultado == false) 
      { 
       alert("No se encontraron provincias para ese pais"); 
       $("#state").attr("disabled",true); 
       document.getElementById("state").options.length=1; 
      } 
      else 
      { 
       $("#state").attr("disabled",false); 
       document.getElementById("state").options.length=1; 
       $('#state').append(resultado);   
      } 
     } 

    ); 
} 
function dependencia_ciudad() 
{ 
    var code = $("#state").val(); 
    $.get("scripts/dependencia-ciudades.php?", { code: code }, function(resultado){ 
     if(resultado == false) 
     { 
      alert("Error"); 
     } 
     else 
     { 
      $("#city").attr("disabled",false); 
      document.getElementById("city").options.length=1; 
      $('#city').append(resultado);   
     } 
    }); 

..... 感謝一切;)對不起爲英語。

回答

0

我想你想是這樣的:

在主畫面:

<script> 
document.ready = function() { 
    fillBasicInformation(); 
} 
</script> 

現在你必須定義一個fillBasicInformation功能,如下所示:

//this should only be called in edit mode 
fillBasicInformation = function() { 
    //First fill country select 
    //select the specific country 
    //Fill state select 
    //select specific state 
    //fill city select 
    //select specific city 

    //now attach events to onChange event 
    //1 
} 

你有現在決定如何獲取和填寫您的字段,並選擇正確的一個(例如使用val())。adding options to the appropriate, probabl through ajax, or maybe directly on the page load

+0

但是我有組合之間的依賴關係,直到其他人有信息才加載它們,並且加載依賴關係需要幾秒鐘的時間:S – Saikios 2010-08-20 18:54:38

+0

document.ready確保函數僅在整個文檔準備好後纔會調用。這不夠嗎?如果不是,您可以將填充「fillBasicInformation」函數中所有選項的函數放入「fillBasicInformation」函數中,然後使用異步調用來調用它... – 2010-08-20 18:58:32

+0

我會試試它, 如果每次都重新加載一部分的網頁?因爲他們有關係? – Saikios 2010-08-20 21:02:05