0

選択するとmysqlからdropdwnメニューに入力するラジオボタンがあります。ラジオボタンのコードは次のとおりです。

<div>
  <input type="radio"  id="radioButton1" name="design" style="vertical-align: middle"  value=3 <?php echo ($_GET['design'] == 3 ? 'checked' : '') ?>/>
  <label for="design">Single Vision</label> 
</div>

IDが異なる5つのラジオボタンがあります。チェックされているラジオボタンに応じて、javascriptは表示をブロックできるようにします。これはjavascriptの一部です:

if (form.radioButton1.checked) {
  sv2.style.display = "none";
  sv3.style.display = "none";
  sv4.style.display = "none";
  sv5.style.display = "none";
  sv.style.display = "block";
  sv.selectedIndex = 0;
}

5つのドロップダウンメニューがあり、すべてdisplay:noneがあります。

チェックされたラジオボタンに応じて、これは表示されるドロップダウンメニューのコードです。

<select style="width:200px; display:none" name="pGroup1" id="sv" >
  <option value="Choose an Option" selected="selected">Choose Single Vision Product Group</option>
  <?php $selGroup = isset($_GET['pGroup1'])?$_GET['pGroup1']:"";
    $sql="SELECT DISTINCT pGroup FROM cr39 WHERE ";
    $sql.="HeadingNo = 3  ORDER BY pGroup ASC";
    $result =mysql_query($sql);
    while ($data=mysql_fetch_assoc($result)){
  ?>
  <option <?php if($data['pGroup'] == $selGroup) echo 'selected="selected"'; ?>  value ="<?php echo $data['pGroup'] ?>" ><?php echo $data['pGroup'] ?></option><?php } ?>
</select>

GETメソッドを使用していますが、送信されたフォームにドロップダウンメニューdisplay:noneの値があります。select with display:blockの値のみが必要であり、他のselect with display:noneは必要ないため、これによりクエリで問題が発生します。

4

2 に答える 2

1

混乱しているかもしれませんが、フォームがすべてのラジオボタンの値を送信しているとおっしゃっているようですね。

すべてのラジオボタンのname属性の値が同じであることを確認してください。

于 2012-09-12T12:41:51.413 に答える
0

ラジオボタンを使用してフォームを送信すると、フォームの値によって、選択ボックスを表示するクエリが変更されたように見えます。もしそうなら、$ _GETの代わりに$_POSTを使用してみませんか?mysql_real_escape_string($_GET['pGroup1'])また、またはでデータをエスケープしてサニタイズするようにしてくださいhtmlspecialchars($_GET['pGroup1'], ENT_QUOTES, 'UTF-8');

AJAXソリューション:

次のHTMLを使用します。

<input type="radio" name="radioGroup-single" value="1" /><label for="radioGroup-single">Single Vision</label> 
<input type="radio" name="radioGroup-whatever" value="2" /><label for="radioGroup-whatever">Whatever Vision</label> 
<input type="radio" name="radioGroup-another" value="3" /><label for="radioGroup-another">Another Vision</label> 

次のjQueryを使用します。

$("input:radio[name=radioGroup]").click(function() {
    var pGroupId = $(this).val();
    $('#myDropdownDiv').load('myDropdownBoxPage.php?pGroupId='+pGroupId);
});

次のように、コンテンツで埋められるDIVをページに配置します。

<div id="myDropdownDiv"></div>

次のようなページを作成しますmyDropdownBoxPage.php

<select style="width:200px; display:none" name="pGroup1" id="sv" >
  <option value="Choose an Option" selected="selected">Choose Single Vision Product Group</option>
  <?php $selGroup = isset($_GET['pGroupId'])?$_GET['pGroupId']:"";
    $sql="SELECT DISTINCT pGroup FROM cr39 WHERE ";
    $sql.="HeadingNo = 3  ORDER BY pGroup ASC";
    $result =mysql_query($sql);
    while ($data=mysql_fetch_assoc($result)){
  ?>
  <option <?php if($data['pGroup'] == $selGroup) echo 'selected="selected"'; ?>  value ="<?php echo $data['pGroup'] ?>" ><?php echo $data['pGroup'] ?></option><?php } ?>
</select>
于 2012-09-12T12:35:15.317 に答える