0

I have radio buttons which when selected populate a dropdwn menu from mysql. 下面是单选按钮的代码:

<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 的单选按钮。根据选中的单选按钮,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;
}

我有五个下拉菜单都带有显示:无。

现在根据选中的单选按钮,这是要显示的下拉菜单的代码:

<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:block 的 select 的值,而不需要带有 display:none 的其他 select。

4

2 回答 2

1

也许我很困惑,但听起来你是在告诉我们表单正在提交所有单选按钮的值?

确保所有单选按钮的 name 属性具有相同的值

于 2012-09-12T12:41:51.413 回答
0

看起来您提交了一个带有单选按钮的表单,并且表单的值修改了一个显示选择框的查询。如果是这样,为什么不使用 $_POST 而不是 $_GET?此外,请务必使用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 回答