2016-01-13 35 views
0

不確定我是否正確表達了標題,所以如果它很混淆,請致歉!使用Ajax調用PHP MySQL動態選擇

這裏是我的問題

我有一個動態的選擇是通過數據填充在一個Ajax調用。我有一個與第一個選擇的「更改」一起運行的函數。如果用戶手動選擇第一個下拉項目,這很好,但我堅持如何讓它在編輯時正常運行。

這就是我想實現:

  1. 負載基礎上的ProdID頁面並填寫其他表單字段(這就是現在發生的事情,所以並不需要提供幫助的;-))
  2. 檢查getData.php中的內容
  3. 填充CatID選擇並將當前選擇標記爲「選中」。
  4. 如果用戶更改了任一選擇框,該功能將按照當前運行方式運行。

這裏是我的功能:

$(function() { 
    $("#topcatid").change(function() { 
    $("#catid").load("getData.php?choice=" + $("#topcatid").val()); 
    }); 
}); 

這裏是我的html:

<select name="topid" id="topid" data-placeholder="Choose a category..."> 
    <option value="" <?php if (!(strcmp("", ($rsProd->getColumnVal("topcatid"))))) {echo "selected=\"selected\"";} ?>>Select</option> 
    <?php while(!$rsCat->atEnd()) {?> 
    <option value="<?php echo($rsCats->getColumnVal(" topcatid ")); ?>"<?php if (!(strcmp($rsCat->getColumnVal("topid"), ($rsProd->getColumnVal("topid"))))) {echo "selected=\"selected\"";} ?>> 
    <?php echo($rsCat->getColumnVal("catName")); ?> 
    </option> 
    <?php $rsCat->moveNext(); } $rsCat->moveFirst(); ?> 
</select> 

<select name="catid" required class="chzn-select" id="catid" style="width:350px" tabindex="2" data-placeholder="Choose a sub-category..."> 
    <option value="">Select from above...</option> 
</select> 

如果用戶手動更改TopID選擇,功能運行,去和獲取數據並填充「CATID」。但是,這是一個頁面,它是一個編輯/更新頁面,所以我需要按照我上面的理想場景運行該功能。

您的意見和代碼編輯將非常感激。

感謝 尼克

+0

坐落於'#catid.change()'另一個綁定? –

+0

不錯的規格。請閱讀[我可以問哪些主題](http://stackoverflow.com/help/on-topic) 和[如何提出一個好問題](http://stackoverflow.com/help/how-to-問) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO是**不是一個免費的編碼服務**你有以表明你已經努力解決你自己的問題。 – RiggsFolly

+0

*「您的意見和**代碼編輯**將非常感激。」* - 嗯?你想要我們編輯究竟是什麼? –

回答

2

對我來說,你應該將剛加載後執行的calback功能做到這一點。

$("#topcatid").change(function() { 
    $("#catid").load("getData.php?choice=" + $("#topcatid").val(), function() { 
     // Manage the old and the new catid 
    }); 
}); 

您也可以使用jquery.ajax功能,這將使你在查詢之前和之後的功能更多的選擇:

$.ajax({ 
    url: ""getData.php?choice=" + $("#topcatid").val()", 
    beforeSend: function(xhr) { 
    // Do something 
    } 
}) 
    .done(function(data) { 
    // Do something with data 
    }); 
+0

謝謝@Orden。這使我走上了正確的道路。 –