2014-03-05 57 views
0

我正在使用以下Javascript基於使用PHP/Mysql的動態選擇填充另一個表單。AJAX/Javascript在PHP中選擇頁面加載時的元素更改

這很好,但我也希望這發生在我發送URL字符串時使用_GET。我已經配置爲使用此爲默認選擇元素:

<option value="<?php echo $_GET['EmpNumber'] ?>"><?php echo $_GET['EmpFirstName'] ?> <?php echo $_GET['EmpLastName'] ?></option>

但是,當我打電話與EmpNumber,EmpFirstName和EmpLastName在URL值的頁面,下面的腳本不會觸發。我怎樣才能做到這一點?

<script> 
     $(document).ready(function() {  
$('select').on('change', function (e) { 
    var optionSelected = $("option:selected", this); 
    var valueSelected = this.value; 
    if(valueSelected){ 
      $.ajax({ 
      type: "POST", 
      cache: false, 
      url: "getinfo.php", 
      data: "data="+valueSelected, 
      dataType: "html", 
      success: function(res) 
      { 

       //alert(res); 
      $('#Name').val(res + '\'s'); 
      }, 
      error: function(xhr, ajaxOptions, thrownError) 
      { 

      }, 
      async: false 
     }); 
    } 

    else { 
     $('#Name').val('Value'); 
    } 




    //alert(valueSelected); 
}); 
}); 
</script> 

回答

2

如果我理解正確的問題要觸發的事件change當第一次加載頁面相同的功能。這是非常簡單的:

$('select').on('change', function() { 
    // some code 
}).trigger('change'); 

這最後一部分,.trigger('change')(或只是.change()的簡稱),將執行您剛剛綁定到change事件對這些元素的功能,如果用戶已經選擇了新的價值。

+0

我應該在代碼的上下文中放置觸發器的位置?這對我不起作用:async:false })。trigger('change'); –

+1

@RoccoTheTaco它在調用'.on()'的結束括號後立即出現,正如我在答案中所演示的。在你的代碼中,就我所能做出的那樣,這將是倒數第二行,即在註釋掉的警報之下。 –

+0

明白了,謝謝! –