2016-09-21 105 views
-1

我正在做的是通過Ajax傳遞數據並將數據放入下拉菜單中。因此,當數據通過時,它應該與下拉列表中的選定值相匹配,然後在選項上出現在頂部,以便我們可以立即看到數據。所以如果返回的數據是Product2,那麼Product2應該是SELECTED可見的。Ajax返回值與下拉列表的值匹配並顯示SELECTED值。 Php

<script type="text/javascript"> 
    function myFunction() { 
     var skuvalue=document.my_form.modlistbox.value; 
     $.ajax({ url: 'modify.php', 
      data: {sku: skuvalue}, 
      type: 'post', 
      dataType: "html", 
      error: function (request, error) { 
       console.log(arguments); 
       alert("ERROR: " + error); 
      }, 
      success: function(data) { 
       var jsonvalue = $.parseJSON(data); 
       console.log(jsonvalue); 
       $(document).ready; 
       $("#modsku").val(jsonvalue[0]); 
       $("#modproduct").val(jsonvalue[1]).prop('selected', true); // I tried this and not working. Nothing is being SELECTED. 
      } 
     }); 
    }; 
</script> 

<input type="text" name="modsku" id="modsku" maxlength="10"> 
<select name="modproduct" id="modproduct"> 
    <option></option> 
    <option value="Product1">Product1</option> 
    <option value="Product2">Product2</option> 
    <option value="Product3">Product3</option> 
</select> 

對於我正在尋找的東西是這樣的。

<select name="modproduct" id="modproduct"> 
    <option></option> 
    <option value="Product1">Product1</option> 
    <option value="Product2" selected>Product2</option> 
    <option value="Product3">Product3</option> 
</select> 
+0

你的問題是什麼?什麼不起作用? – David

+0

從Ajax調用中檢索數據。匹配OPTION值的值。如果它們匹配。有匹配的選擇,所以它會出現在下拉框的頂部。 – mrmcg

回答

0

這裏的鏈接函數調用是多餘的(而且並沒有真正多大意義的背景下,試圖建立一個select元素上的selected屬性):

$("#modproduct").val(jsonvalue[1]).prop('selected', true); 

您可以設置

$("#modproduct").val(jsonvalue[1]); 

:簡單地通過設置與jQuery值來選擇在 select選項

注意:此代碼中還有其他一些內容沒有任何意義。例如,這個:

$(document).ready; 

它沒有做任何事情,而且只是一個錯誤的機會。因此,您的代碼中可能存在其他問題,這些問題會阻止整體結果的發生。

+0

謝謝!現在就開始工作了。 – mrmcg