我有一個用戶可以上傳產品照片的頁面,他從品牌選擇框中選擇品牌,該品牌選擇框將使用屬於該品牌的產品填充產品選擇框。未選擇頁面加載時加載Javascript
這一切都與coldfusion合作,但隨着我們添加更多的產品變得更慢,我已經把產品放在另一個頁面上使用JSON格式。如果我進入該頁面 - prod-json.cfm?brand_id = 115,它會正確加載所有信息。問題是,我需要它來顯示照片頁面,當用戶選擇一個特定的品牌上,下面是我使用的調用頁面的產品代碼:
<script type="text/javascript">
// JavaScript Document
// The queryToObject function
var queryToObject = function(q) {
var col, i, r, _i, _len, _ref, _ref2, _results;
_results = [];
for (i = 0, _ref = q.ROWCOUNT; 0 <= _ref ? i < _ref : i > _ref; 0 <= _ref ? i++ : i--) {
r = {};
_ref2 = q.COLUMNS;
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
col = _ref2[_i];
r[col.toLowerCase()] = q.DATA[col][i];
}
_results.push(r);
}
return _results;
};
// Read the products
$.ajax({
type: "POST",
url: "prod-json.cfm",
data: {'brand_id': $("##brand_id").val()},
dataType: "json",
success: function(data) {
var row, sData, _len, _i;
// Run the data thru queryToObject
data = queryToObject(data);
// Convert the object to a string to display it
sData = JSON.stringify(data);
// Print all products
$('##product_id').append('');
// Loop over the query
for (_i = 0, _len = data.length; _i < _len; _i++) {
row = data[_i];
$('.multiple').append('<option value=' + row.product_id + ' class="' + row.brand_id + '">' + row.product_title + ' - ' + row.make_title + ' ' + row.model_title + '');
}
}
});
</script>
如果我刷新頁面選擇一個特定的品牌,然後它會顯示產品,但如果我選擇另一個品牌,那麼它什麼也不加載,請有人幫我解決這個問題。
在此先感謝。
您是否收到來自任何結果您選擇第二個品牌時的AJAX通話?您的瀏覽器控制檯中有什麼? JavaScript中的##是否因爲ColdFusion正在渲染此腳本? –
是的,##是因爲它的coldfusion,當我選擇了另一個品牌時沒有反應,它只顯示產品,如果我離開品牌選擇框選擇一些東西,然後重新加載頁面,這是它唯一的工作時間。 – johnnyc0506
你可以發佈JSFiddle上的東西嗎?當你說沒有迴應時,是否意味着它沒有提出請求,或者ColdFusion沒有返回任何東西。 –