我需要一些帮助来分隔用逗号分隔的ID,然后在下拉列表中显示它们。
这里是我正在使用的下面的代码,如果衣服_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>
答案 0 :(得分:2)
试试这个,
$ clothing =“1,2,3,4”;
$ query =“SELECT ID,Qty_Values FROM Quantity WHERE Clothing_Type_ID IN($ clothing)”;
答案 1 :(得分:1)
我认为您应该使用IN()
运算符,而不是仅仅使用逗号分隔的字符串进行比较:
$query = "SELECT ID, Qty_Values FROM Quantity WHERE Clothing_Type_ID IN($clothing)";
答案 2 :(得分:0)
将SQL更新为此..
$query="SELECT ID,Qty_Values FROM Quantity WHERE Clothing_Type_ID in ($clothing)";
摆脱爆炸。这将返回衣服的结果集,其中衣服类型ID列在$服装列表中。
我的一部分认为你正在倒退。我假设数据库中的每个项目只有1个服装类型ID,而ids列表在你的$服装字符串中。
如果不是这种情况,请看一下你的数据库表。