我试图从另一个组合框中的组合框中获取mysql的数据。它是根据选择获取数据。 但问题是我并没有以适当的方式获得结果数据。
另一个问题是我希望数据不仅在我更改选择时显示在页面加载上。 当页面加载时,它不显示测试名称的任何内容但在更改后显示。
请帮忙。非常感谢
.js代码:
<script type="text/javascript">
$(document).ready(function()
{
$(".country").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "ajax_city.php",
data: dataString,
cache: false,
success: function(html)
{
$(".city").html(html);
}
});
});
});
</script>
的index.php:
<html>
<head>
<script src="assets-global/js/getdata/jquery.min.js"></script>
</head>
<body>
<select name="country" class="country" style="width:625px;">
<?php
include('con_pick.php');
$query = "select * from main_cats";
$results = mysql_query($query);
while ($rows = mysql_fetch_assoc($results))
{
$idc = $rows['id'];
$q_selected_cat = mysql_query("SELECT mcat_id FROM questions WHERE mcat_id='$mcat_id' ");
$category = mysql_fetch_assoc($q_selected_cat);
$selected_category = $category['mcat_id'];
if($idc == $selected_category){
?>
<option selected value="<?php echo $rows['id'];?>"><?php echo $rows['unique_name'];?></option>
<?php }else{ ?>
<option value="<?php echo $rows['id'];?>"><?php echo $rows['unique_name'];?></option>
<?php } } ?>
</select>
<select name="city" class="city"></select>
</body>
</html>
ajax_city.php:
<?php
include('con_pick.php');
if($_POST['id'])
{
$id=$_POST['id'];
$q_all_categories1 = mysql_query("SELECT * FROM tests where mcat_id=$id");
while ($all_categories1 = mysql_fetch_array($q_all_categories1))
{
$category_id1 = $all_categories1['id'];
$categories_name1 = $all_categories1['unique_name'];
$q_selected_cat1 = mysql_query("SELECT test_id FROM questions WHERE test_id=$test_id and id =$cats_id ");
$selected1 = "";
while ($category1 = mysql_fetch_array($q_selected_cat1))
{
$selected_category1 = $category1['test_id'];
if($category_id1 == $selected_category1){$selected1 = "selected";}
}
print "<option class='' ".$selected1." value='".$category_id1."'>".$categories_name1."</option>";
$selected1 = "";
}
}
?>
答案 0 :(得分:0)
你的第一期: 您的屏幕截图(谈论类别)似乎与代码不匹配(谈论国家/地区)。 看来你错过了城市&#39;来自index.php,所以添加:
<select name="city" class="city"></select>
我也会在你的ajax调用中使用数据:
data: {
'id': id
},
如果事情无法正常工作,请尝试使用console.log(您的结果)。它可能是php脚本发出警告或超时?
你的第二个问题: 页面加载后,您可以调用change()事件 - 就好像用户已经引起了更改。从这里开始:https://api.jquery.com/change/
要手动触发事件,请应用不带参数的.change()
此外: 您的ajax_city.php代码不会验证其输入,而是将其直接发送到SQL Server。想象一下$ _POST [&#39; id&#39;]就是这样的文字:&#34; 0; DROP TABLE测试;&#34; - 你会失去你的桌子。在$ _POST [&#39; id&#39;]之前的一个简单的(int)会阻止它(但是读取SQL注入)。