首页 > 解决方案 > Jquery/Ajax 使用 php 获取数据库

问题描述

我有一个太大的 HTML 页面,无法在此处发布,但是我将发布用于尝试访问 PHP 文件变量的 ajax/jquery。

线程页面.html

<script type="text/javascript">
            
        $.ajax({
        url : '/ThreadCreation.php',
        type : 'POST',
        data: {'titles': titles}
        crossDomain: true,
        dataType : 'jsonp',
        success : function (data) {
           console.log(data) /
        },
        error : function () {
           alert("error");
        }
    })  

</script>

<!-- bunch of html -->

所以本质上我试图从ThreadCreation.phpJSON 格式中获取变量。它应该在一个数组中,以便我可以在 HTML 文件中循环遍历它。

线程创建.php

<?php

    $username = 'root';
    $password = '';
    $db = 'main_database';

    $conn = mysqli_connect('localhost', $username , $password,$db);
    
    if (!$conn){
        die("unable to connect");
    }

    
   $sql = mysqli_query($conn, "SELECT title FROM thread");

   while($row = mysqli_fetch_array($sql)) {
   $titles[] = $row['title'];

   echo json_encode($titles);
?>

不过我会重复一遍,这个 HTML 文件只是通过 PHP 从数据库中获取信息。所以这里没有表单提交。

我不断收到“未定义标题”。这是有道理的,因为 HTML 中没有定义标题,但是我不确定如何构造我的 ajax 请求来收集数据,因为我见过人们使用这种格式。

标签: javascriptphphtmljqueryajax

解决方案


首先提到空数组只是为了防止出现错误,以防数据库中没有数据,然后空数组将继续。

$sql = mysqli_query($conn, "SELECT title FROM thread");

$titles = array();
while ($row = mysqli_fetch_array($sql)) {
    array_push($titles,$row['title']); // Push data in empty array
}
echo json_encode($titles);

推荐阅读