从SQL检索数据,传递给jQuery并创建后续列表

时间:2018-04-10 15:32:46

标签: php jquery html

我的计划的基本概念是:

网页加载 - >用户点击类别 - >新的侧边栏加载了所选类别的帖子 - >用户点击发布 - >用户被重定向到发布网址

我有一个jQuery脚本,用于侦听用户单击某个类别。当他们这样做时,它会将该类别名称传递给PHP,我的PHP脚本会查询数据。

PHP脚本'输出'两个数组,'ID'和'标题'。这个想法是jQuery将检索这两个数组,以允许我在jQuery中进一步使用它们(创建包含来自点击类别的帖子的新元素),但是,我真的很难将两个数组传递给我的jQuery PHP脚本。

我附上了以下代码:

index.php中的jQuery

<script>
// jQuery
$(function() { // Ensures content is loaded before jQuery

    $('.categories').on('click', function () { //When a user clicks on a category hyperlink
        category = this.id; // Set category based on link ID eg. "Cultural Development"
        load("get_posts_from_category.php", { // Retrieve all posts in category from database
            category: category // POST request information
        });
        var PHP_ids = <?php echo json_encode($post_ids); ?>; // Copy PHP array of post ID's into jQuery
        var PHP_titles = <?php echo json_encode($titles); ?>; // Copy PHP array of post title's into jQuery
        $.each(PHP_ids, function (post_id, title) {
             $('#posts').innerHTML = "<ul id='>" + post_id + "<'>" + title + "</ul>";
        });
    });
});

</script>

PHP中的get_posts_from_category.php

include 'functions.php';
db_connect(); // Connect to database

// prepare and bind
$stmt = $GLOBALS['mysqli']->prepare("
      SELECT ID,post_title FROM wplg_2_posts WHERE post_type='post' AND post_status ='publish' AND ID IN (
      SELECT object_id FROM wplg_2_term_relationships WHERE term_taxonomy_id IN (
      SELECT term_taxonomy_id FROM wplg_2_term_taxonomy WHERE taxonomy ='category' AND term_id IN (
      SELECT t.term_id FROM wplg_2_terms t WHERE t.name IN (?))))
      ");

$category = $_POST['category']; // Get category from jQuery
$stmt->bind_param("s", $category); // Prepare SQL query with user input

/* execute query */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($post_id,$title);

// Instantiate arrays
$post_ids = array();
$titles = array();

// set parameters and execute. Store output 'ID' and 'Title' in arrays
while ($stmt->fetch()) {
    array_push($post_ids, $post_id);
    array_push($titles, $title);
}

var_dump($post_ids);
var_dump($titles);

我相信错误发生在我的jQuery脚本中,我循环遍历数组中的每个ID并生成一个列表项作为结果。但是,在阅读了jQuery的.each和众多StackOverflow问题的文档后,我感到很茫然。

非常感谢任何帮助。

0 个答案:

没有答案