【问题标题】:select multiple rows from mysql and sent to jquery post function in php从mysql中选择多行并发送到php中的jquery post函数
【发布时间】:2018-06-13 07:05:18
【问题描述】:

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

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>

加载项目.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);
    }
?>

从成功函数中,我必须将行填充到网格中。我无法做到这一点。所以目前我通过href将类别ID传递给php页面本身,并在页面重新加载后填充数据。由于它不是加载数据的好方法,我想用 jquery ajax 替换它。请帮帮我。

编辑 1

当我这样尝试时:

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

我在警报中收到三个项目名称:[[],"Private Palace","Private Villa F","23rd Floor Addax Tower"]

【问题讨论】:

    标签: php jquery mysql .post


    【解决方案1】:

    此问题是因为您存储在数组中的值会被以前的值覆盖。

    解决方案是在 while 循环之前声明 $results['projects'] = array();

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

    【讨论】:

    • 我宣布了。但它仍然是一样的。
    • 你能检查你的查询吗? cid 有多少条记录。
    • 3 行可用。查询返回正确。
    • 检查编辑的答案。我已更改此行$results['projects'] = $row['project_name'];。我认为这现在可以工作了。
    • 那行得通,但问题是我不仅需要 project_name,还需要其他列。
    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多