javascript - 数据库数据从不显示在html中

标签 javascript php html mysql categories

我尝试从数据库收集类别数据并以 html 形式显示在类别下拉列表中。然而,这是行不通的。我不知道哪一部分出了问题。输出返回null,它不会从数据库类别表中收集任何数据。

这是我的 html 文件

<!DOCTYPE html>
<html>
<style>
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}



</style>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="msapplication-tap-highlight" content="no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/ionic.min.css" />
    <title>Create an Account</title>
</head>
<body onload="selectCategory()">
<div class="bar bar-header">
    <a href="index.html" class="button button-clear button-royal">Back</a>
    <h1 class="title">Add an Item</h1>

</div>
<div class="padding" style="margin-top:75px;">
    <label class="item-input">
        <span class="input-label">Item Name</span>
        <input type="text" placeholder="" id="itemName">
    </label>
    <label class="item-input">
        <span class="input-label">Category</span>
        <select id="select_category">
            <option value="0">- Select -</option>
        </select>

    </label>
    <label class="item-input">
        <button class="button button-block button-positive" id="signup">Add item</button>
    </label>


</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/jq.js"></script>
<script type="text/javascript" src="js/addProduct.js"></script>
</body>

</html>

addProduct.js

    function selectCategory() {
        $.ajax({
                    url: 'http://selectCategory.php?callback=?',
                    type: 'post',
                    data: "",
                    dataType: 'json',
                    success:function(response){

                        var len = response.length;

                        $("#select_category").empty();
                        for( var i = 0; i<len; i++){
                            var id = response[i]['id'];
                            var name = response[i]['name'];

                            $("#select_category").append("<option value='"+id+"'>"+name+"</option>");

                        }
                    }
                });
    }

选择类别.php

<?php
header("Access-Control-Allow-Origin: *");

$host = 'localhost';
$username = 'username';
$password = 'password';
$database = 'database';

$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$stmt = $pdo->query("SELECT * FROM category");

$users_arr = array();

while ($row = $stmt->fetch()) {
    $users_arr[] = array("id" => $row['id'], "name" => $row['name']);
}

// encoding array to json format
echo json_encode($users_arr);
?>

最佳答案

您正在使用mysql_connectmysql_select_db,它们是已弃用的函数。使用 PDO 来访问您的数据库:

<?php
header("Access-Control-Allow-Origin: *");

$host = 'localhost';
$username = 'username';
$password = 'password';
$database = 'database';

$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$stmt = $pdo->query("SELECT * FROM category");

$users_arr = array();

while ($row = $stmt->fetch()) {
    $users_arr[] = array("id" => $row['id'], "name" => $row['name']);
}

// encoding array to json format
echo json_encode($users_arr);
?>

关于javascript - 数据库数据从不显示在html中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156812/

相关文章:

javascript - 如何使用历史推送状态

javascript - 无法使用 imageSource 模块在 Nativescript/Javascript 中保存 URL 中的图像

用于客户数据的 PHP MySQL 嵌套列表

javascript - 提交时打开新窗口

html - 使用位置为 :sticky 的 Flexbox

javascript - 前置所有 CSS 选择器

javascript - d3 js 工具提示不会显示

php - 如何使用通知程序减少数量

javascript - 如何传递 PHP GET URL 变量以使用 Javascript 打开窗口?

javascript - 追加后初始化jquery