【问题标题】:Select row table using ajax and php使用ajax和php选择行表
【发布时间】:2015-11-12 09:20:31
【问题描述】:

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

<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 请求产生的列表附加到哪里?
  • 我没有这样做,你能告诉我怎么做吗?

标签: php jquery mysql ajax


【解决方案1】:

SomePage.php

<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>

创建新页面 AjaxSelectCategory.php [注意:如果您想更改此页面名称。也更改&lt;script&gt;&lt;/script&gt; 标签。两者都是相关的。]

<?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 }
}?>

【讨论】:

  • @ssd 先生:如果您认为这对您有所帮助。请将其标记为正确答案。因为,其他用户会很容易找到它。谢谢。
【解决方案2】:

这样试试,

$.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

$sql = "Select * from table_name where catregory = ".$_POST'category'];
// execute the query.

$sub = "<select name='sub-category'>";
foreach(result from database as $row) {
     $sub .= "<option value='$row->id'>$row->name</option>";
}

$sub .= "</select>";

echo $sub;

【讨论】:

  • 感谢您的回答,我会试试这个
  • @ssd 确保在运行 ajax 之前更改变量。
猜你喜欢
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多