我有一个用于向网站添加产品的表单。 该表单包含2个下拉框,一个用于类别,另一个用于子类别。当您在第一个类别中选择一个类别时,应该使用与之关联的子类填充第二个类别。 Cats和subats来自2个mysql表。 类别被加载到第一个框中确定,但是当我选择一个没有子系统加载到第二个下拉列表!!
这是我的表单和加载子类的ajax
<form class='adminform1' action='add_products.php' method='post' enctype='multipart/form-data' name='image_upload_form' id='image_upload_form'>
<?php
include '../inc/categorydropdown.php';
?>
<span class='formheading'>Add Product</span><br /><br />
<p><b>Choose Image</b><br /><input name="image_upload_box" type="file" id="image_upload_box" /></p>
<b>Name</b><br /><input type=text name="aname" /><br />
<b>Description</b><br /><textarea rows="12" cols="40" name="adescription"></textarea><br />
<b>Price</b><br /><input type=text name="aprice" /><br />
<b>Product Code</b><br /><input type=text name="acode" /><br />
<p><label for="cat">Category</label>
<select name="cat" id="cat">
<?php echo $op;?>
</select><br />
<label for="subcat">Subcategory</label>
<select name="subcat" id="subcat"> </select></p>
<br />
<br />
<input type='submit' id='submit' name='submit' value='Add Product' />
<input type='hidden' value='new' /><br />
</form>
<script>
//bind category dropdown change event
$('#cat').change(function(){
getSubCat();
});
//change subcat dropdown
function getSubCat(){
cat = $('#cat').val();
$.post("../inc/subcat.php", { cat: cat }).done(function(data) {
$('#subcat').html(data);
});
}
//run on page load
getSubCat();
</script>
这是我的php,用于生成发送到ajax代码的子类。
<?php
include 'connect.php':
if(isset($_POST['cat'])){
$cat = intval($_POST['cat']);
$query = "SELECT subcat_id, subcategory FROM `subcategories` WHERE cat_id = $cat";
$result = $link->query($query) or die('error');
$subcatOps = '';
if(mysqli_num_rows($result)){
while ($row = mysqli_fetch_assoc($result)) {
$subcatOps .= "\n\t<option value='{$row['subcat_id']}'>{$row['subcategory']}</option>";
}
}
echo $subcatOps;
?>
有人能看到问题吗?
由于
答案 0 :(得分:0)
@koala_dev关于如何进行调试是正确的。但是一目了然,假设您的$ .post调用正在访问正确的网址,{ cat: cat }
应为{ 'cat': cat }
。
必须引用JSON中的密钥以避免对保留关键字进行另一次转义:https://stackoverflow.com/questions/949449/json-spec-does-the-key-have-to-be-surrounded-with-quotes