-1

コンマで区切られたIDを区切ってドロップダウンリストに表示するのに少し助けが必要です。

ここに私が取り組んでいる以下のコードがあります. clothing_type_id に数字が1つしかない場合は正常に動作します.さらに数字を追加するとカンマで分割されます.爆発を使用する必要があると確信していますが、それを機能させることはできません。どんな助けでも大歓迎です。

<? $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>

アップデート:

これが私がやろうとしていることです。

こんにちは、コードを貼り付けましたが、機能しますが、最初の選択しか表示されず、2 番目の ID をクリックしても何も表示されません。私のデータベース テーブルは次のようになります。最初に選択した Clothing_Type には ID Garment と Price の 3 つの列があり、2 番目のテーブルには ID、Clothing_Type_ID、Qty_Values と price の 4 つの列があります。基本的に私がしようとしているのは、価格ガイドを作成することです。最初の選択ボックスで T シャツを選択すると、フォームの最後に 4 つの価格が表示されます。各アイテムに 1 つ、合計金額に 2 つ (選択した場合より高い数量) VAT の場合は 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 Quantity 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 を持つ衣類の結果セットが返されます。

私の一部は、あなたがこれを逆に行っていると考えています。DB 内の各アイテムには 1 つの衣類タイプ ID しかなく、ID のリストは $clothing 文字列にあると想定しています。

そうでない場合は、DB テーブルの例を教えてください。

于 2012-04-25T19:11:54.347 に答える