使用AJAX,PHP和MYSQL在另一个复选框中的html表单复选框显示多个值

问题描述:

我必须根据检查的类别选择子类别。我坚持选择多个复选框并使用ajax显示其值。 我想使用纯Ajax而不是jQuery。我从数据库表中获取1复选框的值,现在我需要显示其他复选框与选择查询取决于取决于多个复选框用户检查的值。我有一个想法foreach循环将被使用,但不能理解如何以及在哪里框架..请帮助。谢谢你。 这是以下形式:使用AJAX,PHP和MYSQL在另一个复选框中的html表单复选框显示多个值

<?php 
while($f1=mysql_fetch_row($res)) { 
?> 
<input type="checkbox" name="chkcat[]" id="chkcat" onChange="showUser(this.value)" value='<?php echo $f1[1]; ?>'> <?php echo $f1[0]; ?> 
<? } ?> 
<div> id="txtHint"> </div> 
具有showUser功能

<script> 
function showUser(str) { 
if (str=="") { 
document.getElementById("txtHint").innerHTML=""; 
return; 
} 

if (window.XMLHttpRequest) { 
// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp=new XMLHttpRequest(); 
} else { // code for IE6, IE5 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() { 
if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","ajax_chkbox.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 

并具有根据所选择的类别和URL即获取子类别文件

Ajax代码:ajax_chkbox.php是:

while($row = mysql_fetch_array($result)) 
{ 
echo "<input type=checkbox name=chksubcat[] id=chsubkcat value= $row[0]> $row[2]"; 
echo "<br>"; 
} 
+1

我给你的建议的第一位是,分离出你的逻辑。 PHP真的应该只做服务器端处理。 jQuery - DOM操作。 KnockoutJS - UI中的数据绑定。您可能会发现为应用程序的不同部分使用不同的库会更容易。它更容易测试,更容易调试 – 2014-09-06 09:29:18

+0

嗯好吧,但我真的不知道.. – k2793 2014-09-06 09:36:18

+0

“我想使用纯阿贾克斯而不是jquery”? Ajax不是图书馆 – 2014-09-06 09:38:29

您可以更改下拉菜单复选框

小号elect_cat.php

<script type="text/javascript" src="http://ajax.googleapis.com/ 
ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() 
{ 
$(".category").change(function() 
{ 
var id=$(this).val(); 
var dataString = 'id='+ id; 

$.ajax 
({ 
type: "POST", 
url: "select_subcat.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$(".subcat").html(html); 
} 
}); 

}); 

}); 
</script> 

类别:

<select name="category" class="category"> 
<option selected="selected">--Select Category--</option> 
<?php 
include('databasefile'); 
mysql_connect($server,$username,$password)or die(mysql_error()); 
mysql_select_db($database)or die(mysql_error()); 
$sql=mysql_query("select cat_name from category order by cat_name"); 
while($row=mysql_fetch_array($sql)) 
{ 
$cname=$row['cat_name']; 
echo '<option value="'.$cname.'">'.$cname.'</option>'; 
} ?> 
</select> <br/><br/> 

SubCategory : 
<select name="subcat" class="subcat"> 
<option selected="selected">--Select SubCat--</option> 
</select> 

2.select_subcat.php

<?php 
include('databasefile); 
mysql_connect($server,$username,$password)or die(mysql_error()); 
mysql_select_db($database)or die(mysql_error()); 
if($_POST['id']) 
{ 
$id=$_POST['id']; 
$sql=mysql_query("select s_name from subcat_l1 where cat_name='$id'"); 
while($row=mysql_fetch_array($sql)) 
{ 
$sname=$row['s_name']; 
echo '<option value="'.$sname.'">'.$sname.'</option>'; 
} 
} 
?> 
SubCategory : 
<select name="subcat" class="subcat"> 
<option selected="selected">--Select SubCat--</option> 
</select>