2012-07-15 38 views
1

我有一個下拉框中的寬度列表。它們是動態的,因爲每個產品都有不同的寬度,所以我設置了代碼來查找最小值和最大值。然後以1爲增量設置下拉列表。基於使用php和javascript的另一個動態下拉框的選擇來禁用下拉框

旁邊的寬度是1/8「增量。例如,你可以選擇52 1/8。

如果最大寬度是92英寸比方說,1/8增量下拉框應該消失或禁用,因爲自92是最大..你不能選擇92 1/8。

如何使1/8盒子消失或禁用?這是我當前的下拉框代碼的一部分。

<select name="width_str" id="width_str" onchange="doCalc();" style="width:50px;"> 
<option value="">--</option> 
<?php 
$counter = $minwidthRS - 1; 
$start = $minwidthRS; 

for($start; $start < $maxwidthRS + 1; $start++) { 
$counter = $counter + 1; 
echo "<option value=".$counter.">".$counter."</option>"; 
} 
?> 
</select> 

代碼用於與我想禁止或以上選擇的最大時消失1/3/8選擇下拉框。

<select name="widthfrac_str" id="widthfrac_str" onchange="doCalc();" style="width:50px;"> 
<option value="">--</option> 
<option value="1/8">1/8</option> 
<option value="1/4">1/4</option>  
<option value="3/8">3/8</option> 
<option value="1/2">1/2</option>  
<option value="5/8">5/8</option> 
<option value="3/4">3/4</option>  
<option value="7/8">7/8</option> 
</select> 

我知道如何通過發送選定寬度值,使用AJAX PHP頁面,有比較,但我該怎麼發回的成功回調?我可以發送一些告訴容器1/8的測量下拉菜單來禁用或消失嗎?

非常感謝!如果你需要更多的代碼讓我知道。 doCalc()腳本基本上使用AJAX並將寬度發送到php處理頁面以便立即更新價格。

編輯(添加更多的代碼):

這裏是我的腳本的一部分..

<script type="text/javascript"> 
function doCalc(){ 
var roomX = $('#room_str').val(); 
... lots of variables set here 

$.post('db_query.php', 
{roomX:roomX, etc. etc. etc.}, 
function(data) { 
data = $.parseJSON(data); 
$('#roomname-placeholder').html(data.roomname); 
// ... lots of placeholders and code here 
}); 
return false; 
}; 
</script> 

不知道是否有幫助,但我學到了一些關於使用回調來改變輸入並用此替換它的值:$('input[name=x_login]').val(data.loginid);

如果有類似的代碼來簡單地更改其他下拉框禁用=禁用?那有意義嗎?我仍然在學習編程術語!

回答

1

您可以使用onchange()來call another function,它應該檢查爲第一個值選擇的數字。如果是最大值,則切換到第二個元素hide。更簡潔的解決方案是在doCalc中包含「檢查最大值並切換爲真」。

請記住讓PHP也檢查值,因爲如果用戶選擇第二個值AND然後是第一個塊的最大值,它應該隱藏第二個值,但它的值可能仍然會被髮送。

編輯:

<script type="text/javascript"> 
function doCalc(){ 
var roomX = $('#room_str').val(); 
if (roomX == <?php echo $maxwidthRS; ?>) 
    { 
    document.getElementById('widthfrac_str').style.display = 'none'; 
    // You also need to make the second element's value 0 within those brackets 
    } 
... lots of variables set here 

$.post('db_query.php', 
{roomX:roomX, etc. etc. etc.}, 
function(data) { 
data = $.parseJSON(data); 
$('#roomname-placeholder').html(data.roomname); 
// ... lots of placeholders and code here 
}); 
return false; 
}; 
</script> 

有沒有問題,把PHP在JavaScript中,如果它是一個PHP文件。它在評論中表達了OP,非常棒!

+0

我不太明白的部分是 - 我檢查和比較這些數字在我的PHP頁面中的AJAX發佈?如果是這樣,我是否在腳本的成功回調部分執行切換和隱藏效果?我將在EDIT中發佈上述AJAX編碼的一部分。 – LITguy 2012-07-15 07:48:39

+0

我不是一個JavaScript專家,我只知道基礎知識,所以我的答案可能不準確/完整。編輯我的答案。 – 2012-07-15 07:57:55

+0

這樣做!我不知道你可以在JavaScript中這樣做。這開闢了一個全新的世界!非常感謝! – LITguy 2012-07-15 09:00:09

相關問題