-1

我需要一些帮助来分隔用逗号分隔的 id,然后在下拉列表中显示它们。

这是我正在使用的下面的代码,如果clothing_type_id 中只有1 个数字,它可以正常工作,如果我添加更多数字所以它被逗号分隔,即1,2,3,4 它将不再工作,我'我确定我需要使用爆炸,但我无法让它工作。任何帮助将不胜感激。

<? $clothing=intval($_GET['clothing_var']);
include 'classes.php';
mysql_select_db('database');
$query="SELECT ID,Qty_Values FROM Quantity WHERE Clothing_Type_ID='$clothing'";
$result=mysql_query($query);
$test=explode(',', '$result');

?>
<select name="state" onchange="getCity(<?=$clothing?>,this.value)">
<option>Select State</option>
<? while($row=mysql_fetch_array($test)) { ?>
<option value=<?=$row['ID']?>><?=$row['Qty_Values']?></option>
<? } ?>
</select>

更新:

这就是我正在尝试做的事情。

嗨,粘贴了您的代码,虽然它可以工作,但它只会显示第一个选择,如果我点击第二个 id 则没有显示。我的数据库表是这样的,第一个名为 Clothing_Type 的选择有 3 列,ID Garment 和 Price,第二个表有 4 列,ID、Clothing_Type_ID、Qty_Values 和 price。基本上我想做的是制作一个定价指南,所以如果我在第一个选择框中选择一件 T 恤,它将在表格末尾显示 4 个价格,每个项目 1 个,总金额 2 个(如果选择更高的数量)3 为增值税和 4 总金额。每次选择选择时,它都会自动更新价格。在我选择了 3 或 4 个选择框后,如果它们被勾选,我希望再次选择几个复选框来更新价格。

更新 2:这是 js 和 html

JS

<script language="javascript" type="text/javascript">
function getXMLHTTP() {
    var xmlhttp=false;  
    try{
        xmlhttp=new XMLHttpRequest();
    }
    catch(e)    {       
        try{            
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e1){
                xmlhttp=false;
            }
        }
    }

    return xmlhttp;
}

function getQty(countryId) {        

    var strURL="findQty.php?clothing_var="+countryId;
    var req = getXMLHTTP();

    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {                        
                    document.getElementById('qtydiv').innerHTML=req.responseText;                       
                } else {
                    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                }
            }               
        }           
        req.open("GET", strURL, true);
        req.send(null);
    }       
}
function getCity(countryId,stateId) {       
    var strURL="findCity.php?clothing_var="+countryId+"&qty_var="+stateId;
    var req = getXMLHTTP();

    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {                        
                    document.getElementById('citydiv').innerHTML=req.responseText;                      
                } else {
                    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                }
            }               
        }           
        req.open("GET", strURL, true);
        req.send(null);
    }

}
</script>

HTML

<body>
<form method="post" action="" name="form1">
<?
include 'classes.php';
$query="SELECT ID,Garment FROM Clothing_Type";
$result=mysql_query($query);

?>
<select name="clothing_type" onChange="getQty(this.value)">
<option>Select Clothing Type</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value=<?=$row['ID']?>><?=$row['Garment']?></option>
<? } ?>
</select>

<p id="qtydiv">
<select style="width: 150px;" name="qty" disabled='disabled'>
<option>Select Country First</option>
</select>
</p>

<p id="citydiv">
<select style="width: 150px;" name="city" disabled='disabled'>
<option>Select State First</option>
</select>

</p>

<input type="checkbox" name="vehicle" value="Bike" /> I want to live here<br />
<form>
<input type='checkbox' name='1' value='1'id='checkbox_1' />1<br>
<input type='checkbox' name='2' value='2'id='checkbox_2' />2<br>
<input type='checkbox' name='3' value='3'id='checkbox_3' />3<br>
</form>
</body>
4

3 回答 3

2

试试这个,

$clothing = "1,2,3,4";

$query="SELECT ID,Qty_Values FROM 数量 WHERE Clothing_Type_ID IN ($clothing)";

于 2012-04-25T19:14:04.280 回答
1

我认为您应该使用IN()运算符而不是仅与逗号分隔的字符串进行比较:

$query = "SELECT ID, Qty_Values FROM Quantity WHERE Clothing_Type_ID IN($clothing)";
于 2012-04-25T19:11:37.787 回答
0

将您的 SQL 更新为此..

$query="SELECT ID,Qty_Values FROM Quantity WHERE Clothing_Type_ID in ($clothing)";

摆脱爆炸。这将返回具有在 $clothing 列表中列出的服装类型 ID 的衣服的结果集。

我的一部分认为你这样做是倒退的。我假设数据库中的每个项目只有 1 个服装类型 ID,并且 ID 列表在您的 $clothing 字符串中。

如果不是这种情况,请给我一个例子,看看你的数据库表。

于 2012-04-25T19:11:54.347 回答