使用AJAX和复选框进行PHP搜索

如何让AJAX知道我已选中复选框?我有一个从数据库中选择的类别列表。那么如何让AJAX知道我已经检查了什么?

这是我的搜索PHP:

<div class ="search-category-container">
        <div class ="search-category-header featured-header">
            <label class ="featured-font">category</label>
        </div>
        <div class ="search-category-content">
                <?php 
                $result=mysqli_query($connection,"SELECT * FROM category");
                while($row=  mysqli_fetch_array($result)) { ?>
                <label class="checkbox category-list ">
                  <input type="checkbox" name="category_list[]" value="<?php echo $row['name']; ?>" form="search-form"><?php echo $row['name']; ?>
                </label>
                <?php
                }
                ?>
        </div>
    </div>

这是我在没有AJAX的情况下用于搜索的搜索功能。现在我正尝试使用AJAX来获取数据,我可以使用该功能吗?

<?php
if($filter == "post" && $time == "all" && $status == "all" && isset ($_POST['category_list'])) {
foreach ($_POST['category_list'] as $category) {
    $result = mysqli_query($connection, "SELECT * FROM category WHERE name IN ('$category')")or die(mysqli_error($connection));
    while($row=  mysqli_fetch_array($result)) {
        $getCategory = $row['id'];
        $getPostIDRow = mysqli_query($connection, "SELECT * FROM post_category WHERE category_id = '$getCategory'") or die(mysqli_error($connection));
        while($row2=  mysqli_fetch_array($getPostIDRow)) {
            $getPostID = $row2['post_id'];
            $result2 = mysqli_query($connection,"SELECT * FROM post WHERE title LIKE '%$search%' AND id = '$getPostID'") or die(mysqli_error($connection));
            $count2 = mysqli_num_rows($result2);

if($count2>0) {
    while($row2= mysqli_fetch_array($result2)) {
        $postID = $row2['id'];
        $result3 = mysqli_query($connection, "SELECT * FROM user_post WHERE post_id = '$postID'") or die(mysqli_error($connection));
        while($row3 = mysqli_fetch_array($result3)) { 
            $getUserName = mysqli_query($connection, "SELECT * FROM user WHERE id = '".$row3['user_id']."'")or die(mysqli_error($connection));
            while($row4 = mysqli_fetch_array($getUserName)) {?>
                <div class ="post-container" id="search-container">
                    <div class ="post-header-container">
                        <div class ="post-header">
                            <a href ="post.php?id=<?php echo urlencode($row2['id']);?>&user=<?php echo $row3['user_id']; ?>">
                                <p class ="post-header-font"><?php echo ($row2['title']); ?></p>
                            </a>    
                        </div>
                        <div class ="post-user">
                            <p class ="faded-font">by : <a href="user.php?user=<?php echo $row3['user_id']; ?>"><?php echo $row4['username']; ?></a></p>
                        </div>
                    </div>
                    <div class ="post-content-container">
                        <p class ="post-content-font">
                            <?php echo ($row2['summary']); ?>
                        </p>
                    </div>
                    <div class ="post-info-container">
                        <div class ="post-info">
                            <span class ="glyphicon glyphicon-eye-open"> views: <?php echo ($row2['views']);?></span>
                        </div><div class ="post-info">
                            <span class ="glyphicon glyphicon-pencil"> answers:</span>
                        </div><div class ="post-info">
                            <span class ="glyphicon glyphicon-ok"> status: <?php echo ($row2['status']);?></span>
                        </div>
                    </div>
                </div><?php
                    }
                }
            }
        }
    }
}
}
?>

这是AJAX搜索功能

    $(document).ready(function(){
function search() {
    var searchWord = $("#search").val();
    var filter = $("#filter:checked").val();
    var time = $("#time:checked").val();
    var status = $("#status:checked").val();
        $.ajax({
            type:"post",
            url:"searchFunction.php",
            data:"search="+searchWord+"&filter="+filter+"&time="+time+"&status="+status,
            success:function(data) {
                $("#searchContainer").html(data);
                $("#search").val("");
            }
        });
}
$("#searchButton").click(function(){
    search();
});
$("#search").keyup(function(e){
    if(e.keyCode == 13) {
        search();
    }
});
});
ajm113

为了回答您的Ajax问题,我强烈建议更改您的代码以使用“表单” DOM来获得用户体验和更轻松的维护,只需fyi并使用序列化功能,该功能还将发送“已选中”复选框。

https://api.jquery.com/serialize/

function search() {

   var postData = $('myForm').serialize(); // i.e <form id="myForm">
        $.ajax({
            type:"post",
            url:"searchFunction.php",
            data: postData,
            success:function(data) {
                $("#searchContainer").html(data);
                $("#search").val("");
            }
        });
}

这将自动为您完成所有工作,而不必运行一堆jQuery选择调用并将您自己的HTTP查询放在一起。如果您需要知道您的Ajax正在运行。在浏览器的检查器模式下,找到“网络”选项卡,单击该选项卡,您应该看到该搜索文件的ajax调用,其中包含您需要了解的所有内容。什么是HTTP请求和响应标头以及正文。

Ps确保在Submit事件上返回false,并且HTML表单上的字段名称与Ajax的$ _POST关键字名称匹配。

$("#myForm").on('submit', function(){
    search();
    return false;
});

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用复选框和搜索?

来自分类Dev

Ajax,复选框和PHP

来自分类Dev

使用Knockout和复选框进行Ajax调用时出现问题

来自分类Dev

使用jQuery Ajax进行复选框过滤

来自分类Dev

如何使用 php 和 ajax 创建 FILTER BY LOCATION(使用复选框)引擎

来自分类Dev

Ajax和PHP中的复选框决定

来自分类Dev

如何使用ajax和php在csv中获取单选按钮,复选框值?

来自分类Dev

使用 jquery 和 ajax 调用动态检查复选框

来自分类Dev

在PHP中使用多个复选框进行分页

来自分类Dev

用复选框php过滤搜索

来自分类Dev

PHP的形式复选框搜索

来自分类Dev

使用复选框搜索MySQL?

来自分类Dev

使用复选框过滤搜索

来自分类Dev

PHP - 使用复选框获取键和值

来自分类Dev

Ajax和复选框数组

来自分类Dev

PHP / AJAX 复选框值

来自分类Dev

使用AJAX发送复选框值

来自分类Dev

PHP-复选框和图示

来自分类Dev

如何基于多个复选框进行搜索

来自分类Dev

Rails根据多个复选框值进行搜索

来自分类Dev

如何使用管道在多个复选框和搜索字段上组织数据过滤?

来自分类Dev

如何按类别,值和已检查复选框对复选框进行排序

来自分类Dev

复选框和搜索方式的多选下拉菜单

来自分类Dev

搜索和复选框上的角度滤镜

来自分类Dev

如何使用带有复选框的AJAX进行创建和销毁?

来自分类Dev

Semantic-ui复选框和按钮在PHP上进行检查

来自分类Dev

2或3个类别搜索复选框php

来自分类Dev

在Ember.js中使用复选框和计算属性进行多项选择问卷

来自分类Dev

使用Devise和Rails的复选框帮助器方法进行布尔属性更新