1

ドロップダウン ボックスに幅のリストがあります。各製品の幅が異なるため、それらは動的であるため、最小値と最大値を探すようにコードをセットアップしました。次に、1 単位でドロップダウン リストを設定します。

幅の横には 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>

上記のMAXIMUMが選択されたときに無効にするか非表示にしたい1/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);

他のドロップダウン ボックスを無効 = 無効に変更するだけのコードがあれば素晴らしいと思います。それは理にかなっていますか?私はまだプログラミング用語を学んでいます!

4

1 に答える 1

1

onchange() を使用して別の関数を呼び出すことができます。これは、最初の値として選択された数値をチェックする必要があります。それが最大の場合、関数を切り替えて 2 番目の要素を非表示にします。doCalc 内に「最大値をチェックし、true の場合はトグル」を含めると、より適切な解決策が得られます。

ユーザーが 2 番目の値と最初のブロックの最大値を選択した場合、2 番目の値を非表示にする必要がありますが、その値は引き続き送信される可能性があるため、PHP に値もチェックさせることを忘れないでください。

編集:

<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 ファイルにある場合は、php を javascript 内に配置しても問題ありません。OPがコメントで述べたように機能しました。

于 2012-07-15T07:44:13.303 に答える