从mysql中选择多行并发送到php中的jquery post函数

uqdfh47h  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(206)

在我的应用程序中,我必须根据类别加载数据。我所做的是,当单击类别时,调用click函数,其中我获取类别id并将其传递给 $.post 方法到php页 load_project.php . 在该页面中,我根据类别id选择项目,并且我必须将所选行发送回success函数。我的问题是,当我将数据发送回我的数组时,我只会得到数据警报的最后一行。我不知道我要去哪里。谁能帮帮我吗。
php页面:

<script>

    $(document).ready(function() {

        $("#categorylink").click(function() {
            cid = $(this).attr("data-cid");
            $.post('load_project.php', { cid: "" + cid + "" }, function(data) {
                alert(data); //here I get only one row, but there is actually 3 rows
            });

        });
    });
</script>

<ul>
    <a><li data-filter="all">>All</li></a>
    <?php $get=$config->get_cat();
        while($row = $get->fetch(PDO::FETCH_ASSOC)) {
    ?>
        <a id="categorylink" data-cid="<?php echo $row['category_id'];?>">
            <li>
                <?php echo $row['category_name'];?>
            </li> 
        </a>  //this is my categories
    <?php } ?>
</ul>

加载\u project.php

<?php

    require_once 'config.php';
    $config = new DBConfig;

    if(isset($_POST['cid'])) 
    {
        $cid=$_POST['cid'];

        $get=$config->getprojectbycategory($cid);

        while($row=$get->fetch(PDO::FETCH_ASSOC)) {

            $results['projects'] = $row;
        }
        echo json_encode($results);
    }
?>

从success函数中,我必须将行填充到网格中。我不能这样做。因此,目前我通过href将category id传递给php页面本身,并在页面重新加载后填充数据。因为加载数据的方式不是很好,所以我想用jqueryajax代替它。请帮帮我。
编辑1
当我这样尝试时:

$results[] .= $row['project_name'];

我正在提醒三个项目名称: [[],"Private Palace","Private Villa F","23rd Floor Addax Tower"]

eit6fx6z

eit6fx6z1#

此问题是因为存储在数组中的值被以前的值覆盖。
解决方法是声明 $results['projects'] = array(); 在while循环之前。

$results['projects'] = array();
    while($row=$get->fetch(PDO::FETCH_ASSOC)){

    $results['projects'] = $row['project_name'];
    }

相关问题