使用ajax和php选择行表

使用ajax和php选择行表,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我有一个下拉菜单,其中包括一些类别,每个类别都有自己的子类别,我想显示他们购买选择类别名称 但它不起作用,我是错过了什么,还是我做错了 <script type="text/javascript"> $(function() { $("#error").hide(); $("#category").change(function(){ $("#error").hide(); var categor

我有一个下拉菜单,其中包括一些类别,每个类别都有自己的子类别,我想显示他们购买选择类别名称 但它不起作用,我是错过了什么,还是我做错了

<script type="text/javascript">
    $(function() {
        $("#error").hide();
        $("#category").change(function(){
            $("#error").hide();
            var category = $("#category").val();
            if (category == "") {
               $("#error").show();
                return false;
            }   
            var data = $("#form").serialize();
            $.ajax({
               type:"POST",
               url:"index.php",
               data:data,
               success: function(){ 
               }
            });
            return false;
        }); 
    });  
</script>


<form id="form" name="form">
    <label for="category" id="error">Empty</label>
    <select name="category" id="category">
        <option></option>
        <option value="News">News</option>
        <option value="Items">Items</option>
        <option value="Updates">Updates</option>
    </select>
</form>

<?php

include("connect.php");
if(!empty($_POST['category'])){
    $sql=$con->prepare("SELECT * FROM categorys WHERE category=:category ");
    $sql->bindparam(":category",$_POST['category']);
    $sql->execute();

    while($r=$sql->fetch()){
        echo $r['subcategory'];
    }
}
?>
试着这样,

$.ajax({
   type:"POST",
   url:"get_subcategory.php",
   data:data,
   success: function(data){ 
       alert(data)// this will have the second dropdown. add to desired place in your view.
   }
});
在get_subcategory.php中

SomePage.php

创建新页面AjaxSelectCategory.php [注意:如果要更改此页面名称,请同时更改标记。两者都是相关的。]

<?php
include("connect.php");
if(!empty($_GET['CatName']))
{
    $sql=$con->prepare("SELECT * FROM categorys WHERE category=:category ");
    $sql->bindparam(":category",$_GET['CatName']);
    $sql->execute();
    ?>
    <select name='subcategory'>
    <?php
    while($r=$sql->fetch())
    {?>
        <option value="<?php echo $r['subcategory'];?>"><?php echo $r['subcategory'];?></option>
    </select>
    <?php }
}?>

你将ajax请求产生的列表附加到哪里?我没有这样做,你能告诉我怎么做吗?谢谢你的回答,我会尝试的this@ssd确保在运行ajax之前更改变量。Mr@ssd:如果您认为这对您有帮助的话。请把它标为正确答案。因为,其他用户将很容易找到它。谢谢
<form id="form" name="form">
    <div id='category'>
        <label for="category" id="error">Empty</label>
        <select name="category" id="category">
            <option></option>
            <option value="News">News</option>
            <option value="Items">Items</option>
            <option value="Updates">Updates</option>
        </select>
    </div>
    <div id='subcategory'>
    </div>
</form>


<script>
    $('#category').change(function(){
        var CatName= $('#category').val();
        $.ajax({url:"AjaxSelectCategory.php?CatName="+CatName,cache:false,success:function(result){
            $('#subcategory').html(result);
        }});
    });
</script>
<?php
include("connect.php");
if(!empty($_GET['CatName']))
{
    $sql=$con->prepare("SELECT * FROM categorys WHERE category=:category ");
    $sql->bindparam(":category",$_GET['CatName']);
    $sql->execute();
    ?>
    <select name='subcategory'>
    <?php
    while($r=$sql->fetch())
    {?>
        <option value="<?php echo $r['subcategory'];?>"><?php echo $r['subcategory'];?></option>
    </select>
    <?php }
}?>