2012-04-25 16 views
-1

カンマで区切られたIDを分離し、ドロップダウンリストに表示するために少し助けが必要です。aで区切られた列のID番号を区切ります。

clothing_type_idに数字が1つしかない場合、衣服タイプ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> 

UPDATE:

は、ここで私はTODOをしようとしているものです。

こんにちは、あなたのコードを貼り付けて、それは動作しますが、私は何も表示されない2番目のIDをクリックすると、それは最初の選択をもたらすだけです。私のデータベーステーブルはこのようになり、Clothing_Typeと呼ばれる第1の選択肢にはIDのGarmentとPriceという3つのカラムがあり、2つ目のテーブルには4つのカラム、ID、Clothing_Type_ID、Qty_Valuesおよびpriceがあります。基本的には私がしようとしているのは、価格ガイドを作ることです。最初の選択欄でTシャツを選択すると、フォームの最後に4つの価格が表示されます。各項目に1つ、合計金額に2つより高い金額)3 VATと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> 

私はあなただけのカンマで区切られた文字列と比較するのではなく、IN()演算子を使うべきだと思う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> 
+0

ANDを使用するようにクエリを変更する必要があります.SQL注入攻撃に対して開いていないようにしたくない場合もあります。 – BeRecursive

+0

$ clothing変数には何が含まれていますか? –

+0

こんにちはマット、最初の選択ボックスからの結果、2番目の更新を参照してくださいhtmlとjs、うまくいけば、より良い理解を与えるでしょう – Dan

答えて

2

お試しください。

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

$ query = "SELECT ID、Qty_Values FROM個数Where Clothing_Type_ID IN($ clothing)";

+0

それは、おかげで働いています。 – Dan

+0

残念ながら、$ clothing = "1,2,3,4"を入れてもうまくいきませんでした。最初の選択ボックスの結果を無視する – Dan

+0

@ダン私にエラーメッセージを表示する –

1

です:

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

こんにちは感謝の返事、IDの列1,2 、3,4,5しかし、このスクリプトは1をもたらすだけ...何も表示されません – Dan

0

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

が爆発するのを取り除く。これまで、あなたのSQLを更新します。これにより、$服装リストに表示されている衣類タイプIDを持つ服の結果セットが返されます。

私の一部は、あなたがこれを後ろ向きにしていると思います。私は、DBの各項目に1つの衣類タイプIDしかなく、IDのリストがあなたの$服装の文字列に入っていると仮定しています。

これが当てはまらない場合は、DBテーブルの例を見てください。

+0

こんにちは、あなたのコードを貼り付け、それは動作しますが、私は2番目のIDを何も表示しない場合、それは最初の選択をもたらすだけです。 – Dan

+0

私は何をしようとしているのかをより良く理解できるように更新しました。 – Dan

+0

あなたはすべての情報を与えてくれることを期待して、もう一度更新しました。 – Dan

関連する問題